Супер странная синтаксическая ошибка Mysql?

#mysql #sql #syntax #insert #insert-into

#mysql #sql #синтаксис #вставить #вставить-в

Вопрос:

 INSERT INTO pmessage (content, time, sent_by, to) VALUES ('k', '0000-00-00 00:00:00', 84, 1);
  

У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом со ЗНАЧЕНИЯМИ ‘to) (‘tt’, ‘2011-04-28 14:04:45′, 84, 1)’ в строке 1

Проблема в том, что я не вижу ничего неправильного в моем синтаксисе. В именах столбцов и т.д. нет ничего плохого, мы пробовали много раз. Мы скопировали / вставили точную команду insert из Интернета несколько раз, чем отредактировали, и все равно получили ту же ошибку.

У кого-нибудь есть идеи? Сервер — это сервер MySQL 5

Комментарии:

1. Конкуренция на SO жестокая. 4 ответа в течение минуты 😉

Ответ №1:

TO это зарезервированное слово. Смотрите здесь: http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html.

Попробуйте это вместо:

 INSERT INTO pmessage (content, time, sent_by, `to`)
VALUES ('k', '0000-00-00 00:00:00', 84, 1);
  

Ответ №2:

to это ключевое слово MySQL. Вы не можете просто использовать его бесплатно вот так. Попробуйте [to]

Комментарии:

1. Да, отступы. В скобках указан MS SQL, моя ошибка.

2. используйте обратные знаки, а не квадратные скобки

Ответ №3:

Ваша проблема в том, что to это зарезервированное слово MySQL, поэтому вам нужно будет заключить его в кавычки.

Ответ №4:

to является ли резервирующим словом:http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html

Ответ №5:

Перенесите «в» в обратные строки

 INSERT INTO pmessage (content, time, sent_by, `to`) VALUES ('k', '0000-00-00 00:00:00', 84, 1);