2012-05-13 8 views
0

新しいレコードを 'order'テーブルに挿入しようとしています。ここでは、コードは次のようになります。SQLは小数点以下を好きではありません

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

変数はまた、5桁の番号、取引のコストである$のtotalprice(例えば137.97)で、「N 5桁の数字、$の配信ですITEMID $です私のテーブルの出荷されたフィールドで使用されています。

私はこの問題が$ totalpriceから来ていると思いますが、この行の前のすべての変数をエコーすると正しいと思われます。 $ totalpriceが170のときのエコーとエラーの例を次に示します。

00036 00022 N 170 SQL構文に誤りがあります。ライン1

で任意のアイデアを近く 'オーダー(itemsID、deliveryDestinationID、総出荷)VALUES(00036、00022、170' を使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください?

+0

'):テーブル名を変更することを検討したりバッククォート( ''orderなど)でそれをラップ? –

+0

私は大括弧が正しいと確信しています。 ()とデータベースフィールド用のindividual()とVALUES – Mike

答えて

1

orderreserved keywordです。それはあなたのクエリ内のエラーの原因である。他の人は、クエリが動作するためにバッククォートで囲む示唆したように。

2

ORDERは予約キーワードです。あなたはそれを表として使用する場合、バッククォートでそれをエスケープ名前:

"INSERT INTO `order` (itemsID ... 
2

ORDERは、MySQL reserved keywordである。これを表または列の名前として使用するには、バッククォートで囲む必要があります。

$orderDB = mysql_query("INSERT INTO `order` (itemsID, deliveryDestinationID, total, shipped) VALUES ($itemID, $delivery, $totalprice, 'N')") or die(mysql_error()); 
関連する問題