2010-09-30 2 views
-1
INSERT into error_log 
    (id_user, id_error, severity, date) 
VALUES 
    ('93, '1', '6', '1285886665') 

БросивMySql Ошибка синтаксиса

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1', '6', '1285886794')' at line 4 

Таблица

CREATE TABLE `error_log` (
    `id` int(25) NOT NULL auto_increment, 
    `id_user` int(25) NOT NULL, 
    `id_error` int(5) NOT NULL, 
    `severity` int(2) NOT NULL, 
    `date` varchar(50) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 
+3

'('93,' пропускает заключительную цитату, рассмотрите редактор с подсветкой SQL, тогда вы бы сразу заметили его. – Wrikken

+2

также хочу выбросить там технически дату - это зарезервированное слово. Обычно mysql будет кричать на вас для использования зарезервированных слов в качестве имен столбцов, если вы не обертываете их в backtics, но дата является одним из исключений. Но вы никогда не знаете, может ли это измениться в будущем и будет необходимо, и это просто плохая практика вообще назвать столбцы зарезервированными словами, поэтому вы можете захотеть изменить это имя столбца на что-то другое, например error_date или что-то еще. –

ответ

4

Использование:

INSERT into error_log 
(id_user, id_error, severity, `date`) 
VALUES 
(93, 1, 6, '1285886665') 

Вопрос был незакрытый апостроф на значении для id_user.
Значения текста должны быть заключены в одинарные кавычки, например, для столбца date. Но INTEGERS не нужно обертывать в одинарные кавычки, хотя MySQL будет неявно преобразовывать тип данных в любой столбец ... или он выдаст ошибку.

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