2012-05-13 126 views
0

我試圖插入一個新的記錄到表'訂單'。下面是代碼:SQL不喜歡十進制

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

的變量是$ ITEMID這是一個5位數字,$交貨其也是5位數字,$ totalprice這是交易的成本(例如137.97)和「N '這是在我的表中的運輸字段中使用。

我認爲問題來自$ totalprice,但是當我在該行之前回顯所有變量時,它們似乎是正確的。以下是$ totalprice爲170時的回顯和錯誤示例:

00036 00022 N 170您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本使用附近的定單(itemsID,deliveryDestinationID,總,運)VALUES(00036,00022,170'在行1個

任何想法正確的語法手冊?

+0

缺少')'在結束了嗎? –

+0

我很確定括號是正確的。 ()爲整個查詢和個人()爲數據庫字段和值 – Mike

回答

1

orderreserved keyword,它是在你的查詢錯誤的來源。正如其他人建議將其括在反引號的查詢工作。

2

ORDER是保留關鍵字,用反引號逃生,如果你使用它作爲表名稱:

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

ORDERMySQL reserved keyword。要將其用作表或列名稱,您必須將其放在反引號中。

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