带插入的PHP / Mysql语法错误

时间:2014-06-30 11:40:34

标签: 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

这是错误消息:

  

错误SQL!INSERT INTO order(order_id,prod)VALUES(&#39;&#39;&#39; xxx&#39;)   您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在订单附近使用(order_id,prod)VALUES(&#39;&#39;&#39; xxx&#39;)&#39 ;在第1行

谢谢

4 个答案:

答案 0 :(得分:2)

ORDER是保留关键字,恰好是列/表的名称。要避免语法错误,您需要使用反引号来转义它。 E.g。

`ORDER`

如果您有权更改表,请将表名更改为不是保留关键字,以避免再次出现问题。

Waring: 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

答案 1 :(得分:1)

试试这个:

INSERT INTO `order` (order_id,prod) VALUES ('','".$prod."')

答案 2 :(得分:1)

替换为此,只需使用表名为

的单引号
$sql = "INSERT INTO `order` (order_id,prod) VALUES ('','".$prod."')";

答案 3 :(得分:0)

$ insert =&#34; INSERT INTO orderorder_idprod)VALUES(&#39;&#39;&#39;&#34;。 $ PROD&#34;&#39;)&#34 ;;