2012-05-11 94 views
0

我正在構建在線商店網站,以便用戶在線購買商品。一旦用戶點擊「確認訂單」下面的查詢運行:在「訂單」表使用Scope_Identity PHP和SQL Server 2008插入到兩個表中

$tsql = "DECLARE @NewID INT 

    INSERT INTO orders (orderDate, customerID, price_total) VALUES (GETDATE(),'$custID','$totalPrice') 

    SELECT @NewID = SCOPE_IDENTITY() 

    INSERT INTO order_items (orderID, price) VALUES ('@NewID', '$totalPrice')"; 

    $stmt = sqlsrv_query($conn,$tsql); 

的orderID列是主鍵是自動遞增。我希望能夠獲得剛剛插入「orders」表中的orderID,並將其插入「order_items」表中以及其他相關信息。

記錄確實被添加到「orders」表中,但沒有任何內容被添加到「order_items」表中。我不確定我的查詢是否正確。我跟着幾個解釋scope_identity的教程,但由於我對sql和php很陌生,所以我可能在某處犯了一個錯誤。

+0

您是否嘗試過打印查詢並手動運行它?這樣做可能會幫助您找出失敗的原因。 –

回答

2

怎麼樣寫@NewID和撇號不是 '@NewID' ......

+0

工作完美!非常感謝! – Alex

+0

不客氣。 –

0
INSERT INTO order_items (orderID, price) VALUES ('@NewID', '$totalPrice')"; 

應該

INSERT INTO order_items (orderID, price) VALUES (@NewID, '$totalPrice')"; 

@NewID是SQL變量不是你傳遞一個參數。

+0

非常感謝!這解決了問題。 – Alex

相關問題