0

ユーザーがオンラインで商品を購入できるオンラインショップのウェブサイトを構築しています。ユーザーが[注文の確認]をクリックすると、次のクエリが実行されます。

$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 に答える