Не могу увидеть синтаксическую ошибку mySql - PullRequest
0 голосов
/ 19 октября 2011

Извините за глупый вопрос, но я не могу определить мою опечатку:

INSERT INTO lunchmenu (rid, date, repeat, approved) VALUES ('32', '2011-10-18', '3', '0')

Я получаю ошибку mySQL (v5), говорящую

У вас естьошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом со значениями «повторить, утверждено» («32», «2011-10-18», «3», «0») »в строке 1 * 1007.*

Моя структура таблицы

   Field    Type    Size - NULL - Key - Attribute - Default - Extra
1. id       int     11     no     PI    unsigned              auto_increment
2. rid      int     11     no           unsigned                
3. date     date           no     I                     
4. repeat   tinyint 1      no           unsigned    0           
5. approved int     10     no     I     unsigned    0

Любой намек на меня?Спасибо.

Ответы [ 4 ]

3 голосов
/ 19 октября 2011

date и repeat являются зарезервированными словами в mySQL.

Оберните их в обратные знаки или используйте разные имена столбцов.

1 голос
/ 19 октября 2011

Попробуйте это:

INSERT INTO lunchmenu (rid, `date`, `repeat`, approved) 
VALUES (32, '2011-10-18', 3, 0)

Date и repeat являются зарезервированными словами, поэтому вы должны использовать для них обратные метки.
Другие зарезервированные слова можно найти здесь

1 голос
/ 19 октября 2011

Проблема в том, что REPEAT и DATE являются зарезервированными, и вам необходимо экранировать их с помощью обратных символов `, чтобы использовать их в качестве столбца.

INSERT INTO `lunchmenu` (`rid`, `date`, `repeat`, `approved`) VALUES ....

Рекомендуется всегда избегать имен столбцов и таблиц.

0 голосов
/ 19 октября 2011

DATE и REPEAT зарезервированные ключевые слова в MySQL, попробуйте

INSERT INTO lunchmenu AS l (l.rid, l.date, l.repeat, l.approved) VALUES ('32', '2011-10-18', '3', '0')

Это заставит вашу базу данных явно анализировать их как столбцы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...