Bonsoir,

je bute sur un problème que je ne comprends pas.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
        //$sql="insert into Client (titreCli,nomCli,prenomCli,adresseRue1Cli,adresseRue2Cli,cpCli,villeCli,telCli) values (? ,? ,? ,? ,? ,? ,? ,? )";
        $sql="insert into " . $this->table . " " . $colonnes . ") values " . $colonnesParams .")";
 
        echo $sql; //pour voir la requête à l'écran en plus du deboggueur
        $unObjetPDO= Connexion::getConnexion();
         $req=$unObjetPDO->prepare($sql);
         $req->execute($parametres);
la variable $colonnes contient la liste des colonnes de la table :
(titreCli,nomCli,prenomCli,adresseRue1Cli,adresseRue2Cli,cpCli,villeCli,telCli)
la variable $colonnesParams contient la liste des paramètres à passer à la requête :
(? ,? ,? ,? ,? ,? ,? ,? )
ces 2 variables sont obtenues par concaténation. l'idée est de créer un ordre insert générique.

A l'exécution de la requête, j'ai un message :
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''
j'affiche la requête vensée passer, j'ai ceci (echo) :
insert into Client (titreCli,nomCli,prenomCli,adresseRue1Cli,adresseRue2Cli,cpCli,villeCli,telCli) values (? ,? ,? ,? ,? ,? ,? ,? )
quand je fais un copier/coller du résultat de mon echo et que je met l'ordre sql en dur dans mon code, ça marche (voir la ligne commentée de la requête).
Je ne comprends pas du tout ce qu'il se passe. J'ai essayé avec des paramètres nommés ou pas !
Avez-vous une idée
Merci