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

Làm cách nào để tôi có thể truyền một mảng các tham số PDO nhưng vẫn chỉ định loại của chúng?

Nếu bạn tắt cài đặt mặc định của PDO::ATTR_EMULATE_PREPARES , sau đó nó sẽ hoạt động. Tôi vừa phát hiện ra rằng cài đặt đó được bật theo mặc định cho mysql, có nghĩa là bạn không bao giờ thực sự sử dụng các câu lệnh đã chuẩn bị sẵn, php nội bộ tạo sql động cho bạn, trích dẫn các giá trị cho bạn và thay thế các trình giữ chỗ. Ya, một wtf lớn.

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$stmt = $pdo->prepare($sql);
$stmt->execute(array(5)); //works!

Việc chuẩn bị được mô phỏng theo mặc định vì lý do hiệu suất.

Đồng thời xem PDO MySQL:Sử dụng PDO ::ATTR_EMULATE_PREPARES hay không?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bản sao liên quan đến SUM, LEFT JOIN và GROUP BY

  2. Tìm nạp một cột (thuộc tính lớp) một cách lười biếng với Hibernate

  3. tạo số duy nhất mysql

  4. Sử dụng các biến trong MySQL UPDATE (PHP / MySQL)

  5. ĐẶT HÀNG tùy chỉnh BẰNG để bỏ qua 'the'