2014-06-30 137 views
0

有人能告訴我我的請求出了什麼問題嗎?插入的PHP/Mysql語法錯誤

$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_ID ,prod)VALUES('','xxx') 你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用近 '順序(ORDER_ID,PROD)VALUES手動(' ' 'XXX')' 在1號線

謝謝

+0

請查看PDO或MySQLi進行數據庫處理。 MySQL現已棄用 –

+0

另外,發佈$ prod的值將有助於:) –

+0

它被張貼在錯誤消息(即:xxx) – Baylock

回答

2

ORDER是一個保留關鍵字,恰好是您的列/表的名稱。爲避免語法錯誤,您需要使用反引號將其轉義。例如,

`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

+0

謝謝,那就是它 – Baylock

1

試試這個:

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

代替這一點,只是用單引號與表名

$sql = "INSERT INTO `order` (order_id,prod) VALUES ('','".$prod."')"; 
0

$插入=「INSERT INTO orderorder_idprod)VALUES( '',」 」。$刺。 「')」;