Bonjour j'essaie de faire une requête dynamique INSERT avec passage de paramètres.
Voici mon code
Normalement execute accepte un tableau en paramètre. https://www.php.net/manual/fr/pdostatement.execute.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $params = []; $query = "INSERT INTO ".$this->table." ("; foreach ($data as $key => $value) { $query .= "".strtolower($key).", "; } $query = substr($query, 0, -2); // suppression de la dernière "," $query .= ") VALUES ("; foreach ($data as $key => $value) { $query .= ":".strtolower($key).", "; $params[":".strtolower($key)]= $value; } $query = substr($query, 0, -2); // suppression de la dernière "," $query .= ")"; $statement = $this->Instance()->prepare($query); $statement->execute($params);
La connexion à la db et le nom de la table sont bons.
Si j'exécute le query en complétant manuellement le tableau cela fonctionne
Quelqu'un a-t-il une explication?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $statement->execute(array(':lastname'=>'Dupond', ':firstname'=>'Alphonse'));
Merci
Partager