有人可以告诉我我的请求在哪里错了吗?
$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行
谢谢
答案 0 :(得分:2)
ORDER
是保留关键字,恰好是列/表的名称。要避免语法错误,您需要使用反引号来转义它。 E.g。
`ORDER`
如果您有权更改表,请将表名更改为不是保留关键字,以避免再次出现问题。
Waring: Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - 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 order
(order_id
,prod
)VALUES(&#39;&#39;&#39;&#34;。 $ PROD&#34;&#39;)&#34 ;;