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

PDO SQL-state 00000 nhưng vẫn bị lỗi?

Đó là vì $pdo->errorInfo() đề cập đến câu lệnh cuối cùng đã được thực thi thành công. Kể từ khi $sql->execute() trả về false, sau đó nó không thể tham chiếu đến câu lệnh đó (hoặc không có gì hoặc đến truy vấn trước đó).

Tại sao $sql->execute() trả về false, tôi không biết ... có vấn đề với $params của bạn mảng hoặc với kết nối cơ sở dữ liệu của bạn.

Lưu ý:Hướng dẫn sử dụng PHP ( http://php.net/manual/en/pdo .errorinfo.php ) không xác định chính xác "hoạt động cuối cùng trên xử lý cơ sở dữ liệu" nghĩa là gì, nhưng nếu có vấn đề với các tham số ràng buộc, lỗi đó sẽ xảy ra bên trong PDO và không có bất kỳ tương tác nào với cơ sở dữ liệu. Có thể nói rằng nếu $pdo->execute() trả về true , $pdo->errorInfo() là hợp lệ. If $pdo->execute() trả về false , hành vi của $pdo->errorInfo() không rõ ràng rõ ràng từ tài liệu. Nếu tôi nhớ lại chính xác từ trải nghiệm của mình, hãy thực thi trả về true , ngay cả khi MySQL trả về lỗi, trả về false nếu không có hoạt động nào được thực hiện. Vì tài liệu không cụ thể, nó có thể là trình điều khiển db cụ thể.

Câu trả lời này phản ánh kinh nghiệm thực tế kể từ khi nó được viết vào tháng 9 năm 2012. Như người dùng đã chỉ ra, tài liệu không khẳng định lại rõ ràng cách giải thích này. Nó cũng có thể chỉ phản ánh việc triển khai trình điều khiển cơ sở dữ liệu cụ thể, nhưng phải luôn đúng rằng if $pdo->execute() trả về true , $pdo->errorInfo() là hợp lệ.

Bạn cũng có thể muốn đặt PDO ::ERRMODE_EXCEPTION trong trình tự kết nối của bạn. Xử lý ngoại lệ khiến việc kiểm tra và truy vấn lỗi không cần thiết.

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tham chiếu khóa ngoại trong cùng một cột

  2. Toán tử này <=> trong MySQL là gì?

  3. Làm cách nào để kích hoạt tiện ích mở rộng MySQLi trong PHP 7?

  4. Các phương pháp hay nhất để tối ưu hóa trang web LAMP để tăng tốc độ?

  5. Chỉ hiển thị các danh mục phụ của wordpress