0

我正在建立一个在线商店网站,让用户在线购买商品。一旦用户点击“Confirm Order”,下面的查询就会运行:

$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);

“orders”表中的 orderID 列是主键并且是自动递增的。我希望能够获取刚刚插入“orders”表中的orderID,并将其与其他相关信息一起插入“order_items”表中。

该记录确实被添加到“orders”表中,但没有任何内容被添加到“order_items”表中。我不确定我的查询是否正确。我遵循了几个解释 scope_identity 的教程,但由于我对 sql 和 php 非常陌生,我可能在某处犯了错误。

4

2 回答 2

2

用撇号写@NewID而不是'@NewID'怎么样......

于 2012-05-11T14:57:41.930 回答
0
INSERT INTO order_items (orderID, price) VALUES ('@NewID', '$totalPrice')";

应该

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

@NewID 是 sql 变量,而不是您传入的参数。

于 2012-05-11T14:59:49.293 回答