Error in your SQL syntax

Résolu/Fermé
mars - 28 mars 2014 à 18:39
cyril1982 Messages postés 110 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 19 septembre 2018 - 29 mars 2014 à 21:32
Bonjour,
j'ai une erreur dans la syntax que voici:
$req = $this -> bdd -> prepare("INSERT INTO ".$table." SET ".$ajouter." date_creaton = NOW()");


Voici l'erreur:
Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 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 'date_creaton = NOW()' at line 1

si j'enlève ." date_creaton = NOW()" à la fin de mon code ça fonctionne, mais j'ai pas la date.
Voila, si quelqu'un arrive à voir d'où vient l'erreur, merci à lui
Cordialement...


A voir également:

3 réponses

cyril1982 Messages postés 110 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 19 septembre 2018 12
28 mars 2014 à 21:24
Bonjour,

Tu a mis INSERT au lieu d'UPDATE :
$req = $this -> bdd -> prepare("UPDATE ".$table." SET ".$ajouter." date_creaton = NOW()");
0
Utilisateur anonyme
29 mars 2014 à 00:22
Bonjour

Mars voulait peut-être vraiment faire un INSERT. Car avec un UPDATE sans WHERE, il va mettre à jour toutes les lignes de la base, ça m'étonnerait que ce soit ça qu'il veut.
La syntaxe INSERT INTO table SET champ='valeur' est parfaitement correcte.
0
cyril1982 Messages postés 110 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 19 septembre 2018 12
29 mars 2014 à 21:32
Ah c'est une découverte pour moi, je ne connaissais pas cette syntaxe !!
0
Utilisateur anonyme
29 mars 2014 à 00:26
Bonjour

Ça dépend de ce qu'il y a dans $ajouter.
S'il y a un simple nom de champ, il manque une valeur.
S'il y a une valeur, il manque le nom du champ.
S'il y a champ='valeur', il manque une virgule pour séparer ce SET dui suivant :
$req = $this -> bdd -> prepare("INSERT INTO ".$table." SET ".$ajouter.", date_creaton = NOW()");
0
oui c'est ça, il manquait une virgule.
Maintenant, ça marche.
Merci
0