2011-10-21 2 views
0

С помощью этого PHP/MySQL запросов:Ошибка синтаксиса MySQL с простым INSERT?

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre'") 

Я получаю ошибку синтаксиса

«У Вас есть ошибка в вашем синтаксисе SQL, проверьте руководство, которое соответствует Вашей версии сервера MySQL для правый синтаксис для использования рядом с '' в строке 1

Я не вижу ничего плохого в этом синтаксисе. Кто-нибудь еще?

+0

Это зависит от того, что значения этих переменных ... Вы должны действительно избежать их –

+2

Среди других проблем, вы теряете окончание ')' 'для VALUES' –

+1

Серьезно ?! Это 2011 год, и мы все еще используем интерполяцию строк для SQL-запросов? – Phil

ответ

6

У вас есть недостающие скобки:

mysql_query("INSERT INTO ... VALUES (... , 'Genre'") 

Должно быть:

mysql_query("INSERT INTO ... VALUES (... , 'Genre')") 
               ^

Вы также иметь инъекционный уязвимость SQL в коде. Используйте mysql_real_escape_string или параметризованные запросы. Связанный:

-1

Ошибка в том, что вы не закрываете ваше заявление MySQL с соответствующим кронштейном.

Yours:

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre'"); 

Правильные:

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre')"); 
+1

@Downvoter, пожалуйста, станьте мужчиной и объясните мне. – Jules

0

Вы не закрывал свой последний кронштейн в запросе.

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre')") 
+0

Кто отказался от этого? По какой причине? – Mob

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