2011-07-15 146 views
3

對於我的生活,我無法得到這個插入查詢的工作。PHP/MySQL插入查詢

mysql_connect("**host**", "**username**", "**password**") or error("Could not connect: ".mysql_error()); 
mysql_select_db("**db_name**"); 
$db = mysql_query("INSERT INTO `pass_reset` (id,status,key,email) VALUES ('','0','$key','$email')"); 

它返回此錯誤:

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 'key,email) VALUES ('','0','','')' at line 1

有人能幫助我嗎?我通過這個簡單的查詢從字面上拉我的頭髮。

回答

9

嘗試以下操作:

$db = mysql_query("INSERT INTO `pass_reset` (id,status,`key`,email) VALUES ('','0','$key','$email')"); 

因爲keyreserved word by MySQL,你必須用反引號``

逃避它
+1

這是一個'key'word,你可以說。哈哈。哈。我現在要走了。 –

+1

+1擊敗我。 –

+0

@Shef,我傾向於總是重新選中我的所有字段/表名,以解決很多未知問題! – LouwHopley

0

也許嘗試與重音封閉的列名?

(`id`,`status`,`key`,`email`)
3

KEY是MySQL中的一個保留字,所以你必須用back ticks來避開它。

-1

不要把PHP變量',它肯定會工作的人

$db = mysql_query("INSERT INTO `pass_reset` (id,status,key,email) VALUES ('','0',$key,$email)"); 

或者

$db = mysql_query("INSERT INTO `pass_reset` (id,status,key,email) VALUES ('0',$key,$email)");