Ошибка MySQL - «У вас есть ошибка в вашем синтаксисе SQL» - PullRequest
4 голосов
/ 29 января 2012

Полученное сообщение об ошибке:

В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом со словом '' word ',' group ',' selfnote ') VALUES (' item ',' a ',' note to self ')' в строке 1

PHP-код:

$toq="INSERT INTO articles ('word','group','selfnote') 
VALUES ('$ttle','$wrdr','$snote')";

Я пытался найти солютины, но, похоже, они не работают, поскольку эхо дает:

INSERT INTO articles ('word','group','selfnote') 
VALUES ('item','a','note to self')

что мне кажется приятнымВ чем проблема?

Ответы [ 4 ]

8 голосов
/ 29 января 2012

Используйте кавычки ` вместо кавычек ' для экранирования имен.Кавычки являются разделителями строк.

$toq="INSERT INTO articles (`word`,`group`, `selfnote`) VALUES ('$ttle','$wrdr','$snote')";
8 голосов
/ 29 января 2012

Вы поместили кавычки в названия полей. Это заставляет MySQL обрабатывать их как строки, а не имена полей - и вы не можете вставить их в строки.

INSERT INTO articles (word, group, selfnote) VALUES (....);

- правильный синтаксис. Единственный тип цитирования, разрешенный для имен полей, - это использование обратных кавычек для экранирования полей зарезервированных слов, например

INSERT INTO articles (table, int, varchar)  ...

потерпит неудачу из-за использования 3 зарезервированных слов, но с добавлением обратных кавычек

INSERT INTO articles (`table`, `int`, `varchar`)  ...

делает их приемлемыми в качестве имен полей.

4 голосов
/ 29 января 2012

Вы не должны заключать в кавычки имена столбцов с обычными кавычками (''), скорее используйте обратные кавычки (``).

2 голосов
/ 29 января 2012

Вы должны удалить или заменить кавычки имен столбцов обратными чертами (`).Поскольку «группа» является ключевым словом, вы должны использовать обратные галочки:

INSERT INTO articles (`word`, `group`, `selfnote`) VALUES (....);
...