execute()
метод очаква единичен масив. От документацията:
С array($id,$array)
ще предавате многоизмерен масив, който изглежда така:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
Това със сигурност не е това, което очаква. Нуждае се от едномерен масив, съдържащ стойностите, които трябва да бъдат вмъкнати.
За да разрешите този проблем, трябва да промените формата на масива. Добавете идентификатора към началото на масива, както следва:
$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);