2012-03-06 2 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 является reserved word в MySQL. Избегайте этого, или оберните его в backticks.

Редактировать: И я надеюсь, что вы избежали переменных, которые вы вставляете в этот запрос.

+0

Спасибо! Это решило! Сначала увидел ваш ответ! – nitsuj

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, предлагая избегать использования его в качестве имени столбца (Лучшее решение, которое всегда необходимо обернуть в обратные ссылки) –

+0

Спасибо за ваш ответ! Я видел решение от @DCoder до вашего, но я соглашусь с тем, чтобы другие (если у них такая же проблема), будут знать, чтобы избежать использования этого имени столбца. – nitsuj

+0

Другой пользователь также советует вам избежать этого. Не стесняйтесь принимать ответ, который вам больше всего нравится! – bfavaretto

Смежные вопросы