Requête dynamique avec passage de paramètres
Bonjour j'essaie de faire une requête dynamique INSERT avec passage de paramètres.
Voici mon code
Code:
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); |
Normalement execute accepte un tableau en paramètre. https://www.php.net/manual/fr/pdostatement.execute.php
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
Code:
1 2
|
$statement->execute(array(':lastname'=>'Dupond', ':firstname'=>'Alphonse')); |
Quelqu'un a-t-il une explication?
Merci