SQL不喜欢decimal

时间:2012-05-13 12:08:36

标签: php mysql

我正在尝试将新记录插入表'订单'。这是代码:

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

变量是$ itemID,这是一个5位数字,$ delivery也是一个5位数字,$ totalprice是交易成本(例如137.97)和'N'用于发货领域我的桌子。

我认为这个问题来自$ totalprice,但是当我在这行之前回显所有变量时,它们似乎是正确的。以下是$ totalprice为170时的回声和错误示例:

00036 00022 N 170您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'order(itemsID,deliveryDestinationID,total,shipment)附近使用正确的语法VALUES(第1行的00036,00022,170'

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

ORDER是保留关键字。如果您将其用作表名,请使用反引号将其转义:

"INSERT INTO `order` (itemsID ...

答案 1 :(得分:2)

ORDERMySQL reserved keyword。要将其用作表名或列名,必须将其括在反引号中。

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

答案 2 :(得分:2)

order是MySQL中的保留字。考虑更改表名或将其包装在反引号中(例如:`order`)

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

答案 3 :(得分:1)

orderreserved keyword。它是查询中的错误来源。正如其他人所建议的那样,将其封装在后面,以便查询起作用。