2012-03-06 38 views
1

我不知道這有什麼錯我的語法做,但我失去了一些東西:錯誤當試圖插入到MySQL表用PHP

$createrequest = mysql_query("INSERT INTO products_updates_queue (id, kid, 
product_version_id, key, ip) VALUES ('$request_id', '$uid', '$version_id', 
'$request_key', '$request_ip')"); 

我收到此錯誤:

"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, ip) VALUES ('j4ctveyd0x62', '1', 'z451ah3', 'hqbyu7bhg8za', '64.134.163.2' at line 2"

任何人都可以看到我缺少的東西嗎?

回答

3

key是MySQL中的一個reserved word。避免它,或反向包裝它。

編輯:我希望你逃脫了你要放入該查詢的變量。

+0

謝謝!這解決了它!首先看到你的答案! – nitsuj 2012-03-06 20:35:16

6

我認爲key是一個保留字,您應該避免將其用作列名。嘗試使用反引號:

$createrequest = mysql_query("INSERT INTO products_updates_queue (id, uid, product_version_id, `key`, ip) VALUES ('$request_id', '$uid', '$version_id', '$request_key', '$request_ip')"); 
+0

+1建議避免使用它作爲列名(更好的解決方案,然後總是不得不包裝在反引號中) – 2012-03-06 20:33:14

+0

感謝您的回覆!我在你之前看到@DCoder的解決方案,但我會接受你的,以便其他人(如果他們有同樣的問題)知道避免使用這個列名。 – nitsuj 2012-03-06 20:36:38

+0

其他用戶也告訴你要避免它。隨時接受你最喜歡的答案! – bfavaretto 2012-03-06 20:38:27