使用Scope_Identity PHP和SQL Server 2008插入两个表

时间:2012-05-11 14:51:01

标签: php sql sql-server-2008 insert

我正在建立一个在线商店网站,让用户在线购买商品。用户单击“确认订单”后,将运行以下查询:

$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很新,我可能在某个地方犯了错误。

2 个答案:

答案 0 :(得分:2)

如何用撇号写@NewID而不是'@NewID'......

答案 1 :(得分:0)

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

应该是

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

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