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

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

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с 'to) VALUES('tt', '2011-04-28 14:04:45', 84, 1)' в строке 1

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

У кого-нибудь есть идеи? Сервер представляет собой сервер MySQL 5.


person gkaykck    schedule 28.04.2011    source источник
comment
Конкуренция на SO жесткая. 4 ответа в течение минуты ;-)   -  person Zepplock    schedule 28.04.2011


Ответы (5)


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);
person Daniel Renshaw    schedule 28.04.2011

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

person Nik    schedule 28.04.2011
comment
Ага, обратные галочки. В скобках MS SQL, моя ошибка. - person Nik; 28.04.2011
comment
используйте обратные кавычки, а не квадратные скобки - person Tony Lukasavage; 28.04.2011

Проблема в том, что to является зарезервированным словом MySQL, так что вам нужно процитировать его.

person Dancrumb    schedule 28.04.2011

to — резервное слово: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html

person Zepplock    schedule 28.04.2011

Оберните "to" обратными кавычками

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