0

我正在尝试将新记录插入到表“订单​​”中。这是代码:

$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 服务器版本相对应的手册,以在第 1 行的“订单(itemsID,deliveryDestinationID,total, shipping)VALUES (00036, 00022, 170') 附近使用正确的语法

有任何想法吗?

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 回答