插入时出现 PHP/Mysql 语法错误

标签 php mysql sql-insert

谁能告诉我我的请求哪里有问题?

$sql = "INSERT INTO order (order_id,prod) VALUES ('','".$prod."')";
mysql_query($sql) or die ('Error SQL !'.$sql.'<br />'.mysql_error());
$_SESSION['orderid']=mysql_insert_id();

这是我的表格配置:

order 表的列:

'order_id'=>int(11) auto_increment
'prod'=> varchar(20) utf8_general_ci

这是错误信息:

Error SQL !INSERT INTO order (order_id,prod) VALUES ('','xxx') You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order (order_id,prod) VALUES ('','xxx')' at line 1

谢谢

最佳答案

ORDER 是一个保留关键字,恰好是您的列/表的名称。为避免语法错误,您需要使用反引号对其进行转义。例如

`ORDER`

如果您有修改表的权限,请将表名更改为非保留关键字以避免问题再次发生。

华林: Please, don't use mysql_* functions in new code .它们不再维护 and are officially deprecated .查看red box ?了解 prepared statements相反,并使用 PDOMySQLi - this article将帮助您决定选择哪个。如果选择 PDO,here is a good tutorial .

关于插入时出现 PHP/Mysql 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24489313/

相关文章:

php - 近交免疫数据库结构

PHP explode 并赋值给一个多维数组

php - 在 codeigniter 中更新多个 id

php - MySQL 正确查询结果无效

mysql - 来自 1 个以上 DB 的 Excel 工作表中的数据

mysql - 两个相同的 SQL 查询出现意外的大量执行时间

php - Codeigniter insert_batch 限制问题

mysql - 在 INSERT ON DUPLICATE 语句期间以什么顺序调用 mysql 触发器?

java - 发现异常后继续执行

mysql - 如何为以下用例设计表格?