0

テーブル「注文」に新しいレコードを挿入しようとしています。コードは次のとおりです。

$orderDB = mysql_query("INSERT INTO order (itemsID, deliveryDestinationID, total, shipped) VALUES ($itemID, $delivery, $totalprice, 'N')") or die(mysql_error());

変数は、5 桁の数字である $itemID、同じく 5 桁の数字である $delivery、トランザクションのコスト (例: 137.97) である $totalprice、およびテーブルの出荷済みフィールドで使用される 'N' です。

問題は $totalprice から来ていると思いますが、この行の前にすべての変数をエコーすると、それらは正しいように見えます。$totalprice が 170 の場合のエコーとエラーの例を次に示します。

00036 00022 N 170 SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください

何か案は?

4

4 に答える 4

2

ORDERは予約済みキーワードです。テーブル名として使用する場合は、バッククォートでエスケープします。

"INSERT INTO `order` (itemsID ...
于 2012-05-13T12:14:27.487 に答える
2

ORDERMySQL の予約キーワードです。テーブル名または列名として使用するには、バッククォートで囲む必要があります。

$orderDB = mysql_query("INSERT INTO `order` (itemsID, deliveryDestinationID, total, shipped) VALUES ($itemID, $delivery, $totalprice, 'N')") or die(mysql_error());
于 2012-05-13T12:14:39.090 に答える
2

orderは MySQL の予約語です。テーブル名の変更を検討するか、バッククォートで囲みます (例: `order`)

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

于 2012-05-13T12:14:46.353 に答える
1

order予約キーワードです。これがクエリのエラーの原因です。他の人が提案したように、クエリが機能するようにバックティックで囲みます。

于 2012-05-13T12:11:10.610 に答える