3

編集:いわば間違った木を吠えていることがわかりました。質問を編集して、少なくともエラーが発生した他の人にとって役立つようにしました。

準備されたPDOクエリを実行しようとしたときに次のエラーが発生するすべての人のために:

警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [HY093]:無効なパラメーター番号:パラメーターが26行目に定義されていません

以下の私の答えを参照してください。

4

2 に答える 2

1

私が間違っている場合は訂正してください。ただし、パラメーター配列に次の構文を使用することになっているのではありませんか。

array(':id' => 1)

元の投稿で省略されているコロンに注意してください。

例については、 PDOドキュメントを参照してください。

于 2012-08-08T16:48:30.853 に答える
1

$query->execture($array)これは、クエリにあるよりも多くの配列値を渡すことを意味:valuesします。同様の、しかし異なる言い回しのエラーが発生した:values場合は、配列よりもクエリの方が多いことを意味します。例えば:

$array = array(
  'username' => 'Bob',
  'id' => 42,
);

//...

$query = "SELECT * FROM `users` WHERE `id`=:id";

//...

$data->execute($array);

「username」を渡しても、クエリで使用されることはないため、これによりエラーが発生します。これが誰かに役立つことを願っています!

于 2012-08-11T13:10:52.667 に答える