execute()
メソッドは単一の配列を想定しています。ドキュメントから:
array($id,$array)
を使用 次のような多次元配列を渡すことになります:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
これは確かにそれが期待するものではありません。挿入する値を含む1次元配列が必要です。
この問題を修正するには、配列形式を変更する必要があります。次のように、配列の先頭にIDを追加します。
$array = array(1, "a", "b", "c");
ID変数が動的に生成される場合は、array_unshift()
を使用して、手動で配列に追加できます。 機能:
$id = "1";
$array = array("a", "b", "c");
$array = array_unshift($array, $id);
...次に、execute()
を変更します そのように電話してください:
$statement1->execute($array);