Je sais que le titre est pas super super mais j'ai rien trouvé d'autre :D
Je suis en train de me faire une class Database et lors du test d'un insert j'ai cette erreur :
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Après un peu de recherche sur le net et quelque test dans mon script j'ai trouvé que mon erreur est causée par ce bout de code :
foreach ($this->bind as $k => $v) {
$query->bindParam($v[0], $v[1], $v[2]);
}
Car lorsque je créer les bindParam() à la main, je n'ai aucun soucis :
$name="Nom";
$fname="Prenom";
$query->bindParam(':firstname', $fname, \PDO::PARAM_STR);
$query->bindParam(':lastname', $name, \PDO::PARAM_STR);
Mon $this->bind est rempli grâce à :
$this->bind[] = ["':$k'", $v, $this->bindType[gettype($v)]];
et j'initialise bindType comme ceci :
private $bindType = [
"integer" => \PDO::PARAM_INT,
"string" => \PDO::PARAM_STR,
"boolean" => \PDO::PARAM_BOOL
];
Existe-t-il un moyen de ressoudre ce soucis tout en gardant mes bindParam() généré automatiquement ? Ou suis-je obligé des les faire à la main ?
Merci de votre aide.