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

LancermySQL Erreur de syntaxe

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 

Tableau

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,' manque une citation de fermeture, considérez un éditeur avec la mise en surbrillance SQL, alors vous l'auriez repéré immédiatement – Wrikken

+2

aussi voulez jeter là-bas que techniquement la date est un mot réservé Normalement, mysql vous criera dessus pour utiliser des mots réservés comme noms de colonnes sauf si vous les enveloppez dans des backtics, mais la date est l'une des exceptions.Mais vous ne savez jamais si cela pourrait changer dans le futur et être nécessaire, et c'est juste une mauvaise pratique en général donc vous pourriez vouloir changer ce nom de colonne en quelque chose d'autre, comme error_date ou quelque chose. –

Répondre

4

Utilisation:

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

La question était une citation unique sur la valeur non fermée pour id_user.
Les valeurs de texte doivent être placées entre guillemets simples, comme pour la colonne date. Mais INTegers n'a pas besoin d'être enveloppé dans des guillemets simples, bien que MySQL convertira implicitement le type de données en quelque soit la colonne ... ou il va lancer une erreur.