編集:いわば間違った木を吠えていることがわかりました。質問を編集して、少なくともエラーが発生した他の人にとって役立つようにしました。
準備されたPDOクエリを実行しようとしたときに次のエラーが発生するすべての人のために:
警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [HY093]:無効なパラメーター番号:パラメーターが26行目に定義されていません
以下の私の答えを参照してください。
私が間違っている場合は訂正してください。ただし、パラメーター配列に次の構文を使用することになっているのではありませんか。
array(':id' => 1)
元の投稿で省略されているコロンに注意してください。
例については、 PDOドキュメントを参照してください。
$query->execture($array)
これは、クエリにあるよりも多くの配列値を渡すことを意味:values
します。同様の、しかし異なる言い回しのエラーが発生した:values
場合は、配列よりもクエリの方が多いことを意味します。例えば:
$array = array(
'username' => 'Bob',
'id' => 42,
);
//...
$query = "SELECT * FROM `users` WHERE `id`=:id";
//...
$data->execute($array);
「username」を渡しても、クエリで使用されることはないため、これによりエラーが発生します。これが誰かに役立つことを願っています!