execute()
phương thức mong đợi một mảng duy nhất. Từ tài liệu:
Với mảng array($id,$array)
bạn đang chuyển một mảng đa chiều trông như thế này:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
Đây chắc chắn không phải là những gì nó mong đợi. Nó cần một mảng đơn chiều chứa các giá trị được chèn vào.
Để khắc phục sự cố này, bạn phải sửa đổi định dạng mảng. Thêm ID vào đầu mảng, như sau:
$array = array(1, "a", "b", "c");
Nếu biến ID được tạo động, thì bạn có thể thêm nó vào mảng bắt đầu theo cách thủ công bằng cách sử dụng array_unshift()
chức năng:
$id = "1";
$array = array("a", "b", "c");
$array = array_unshift($array, $id);
... và sau đó sửa đổi execute()
gọi như vậy:
$statement1->execute($array);