Error in your SQL syntax

Résolu
mars -  
cyril1982 Messages postés 110 Statut Membre -
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...

3 réponses

  1. cyril1982 Messages postés 110 Statut Membre 12
     
    Bonjour,

    Tu a mis INSERT au lieu d'UPDATE :
    $req = $this -> bdd -> prepare("UPDATE ".$table." SET ".$ajouter." date_creaton = NOW()");
    0
    1. Utilisateur anonyme
       
      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
    2. cyril1982 Messages postés 110 Statut Membre 12
       
      Ah c'est une découverte pour moi, je ne connaissais pas cette syntaxe !!
      0
  2. Utilisateur anonyme
     
    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
  3. mars
     
    oui c'est ça, il manquait une virgule.
    Maintenant, ça marche.
    Merci
    0