Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PDO thực thi mảng thành chuỗi lỗi chuyển đổi

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);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ALTER TABLE trong MySQL:Bạn hay kẻ thù?

  2. Cách tính Tổng tích lũy trong MySQL

  3. Lỗi:chọn lệnh bị từ chối đối với người dùng '<userid>' @ '<ip-address>' cho bảng '<table-name>'

  4. Lỗi MySQL 1449:Người dùng được chỉ định làm trình xác định không tồn tại

  5. Không thể xem dữ liệu được chèn từ MySQL ngay lập tức