execute()
metoda očekává jediné pole. Z dokumentace:
Pomocí array($id,$array)
předali byste vícerozměrné pole, které vypadá takto:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
To rozhodně není to, co očekává. Potřebuje jednorozměrné pole obsahující hodnoty, které mají být vloženy.
Chcete-li tento problém vyřešit, musíte upravit formát pole. Přidejte ID na začátek pole, například takto:
$array = array(1, "a", "b", "c");
Pokud je proměnná ID generována dynamicky, můžete ji ručně přidat do pole start pomocí array_unshift()
funkce:
$id = "1";
$array = array("a", "b", "c");
$array = array_unshift($array, $id);
... a poté upravte execute()
zavolejte takto:
$statement1->execute($array);