2012-03-06 62 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