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

PDO từ chối xóa một hàng dữ liệu (trong bảng cụ thể)

PDO::exec() hàm trả về số lượng hàng bị ảnh hưởng, bao gồm cả 0 nếu không có hàng nào bị ảnh hưởng.

Một dòng như thế này sẽ die() bởi vì exec sẽ trả về 0 được hiểu là boolean false.

$dblink->exec("UPDATE `sometable` SET `somecolumn`=0 WHERE `somecolumn`=0") or die("Never use die for error handling.");

Thực tiễn xử lý lỗi tốt nhất cho PDO là sử dụng các ngoại lệ PDO. Bật ngoại lệ PDO (của lớp PDOException, xem tài liệu) như sau:

//enable Exception mode (uncaught exceptions work just like die() with the benefit of giving you details in logs of where execution was stopped and for what reason)
$pdoDBHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Xóa or die()exit(); và bật chế độ ngoại lệ. Tôi cá rằng điều này sẽ khắc phục được vấn đề "kỳ lạ" của bạn. Ngoài ra, hãy xem cách ném Ngoại lệ trong PHP, ngay cả với mã thủ tục (để thay thế die()exit() .

BTW exit dừng thực thi giống như die , ngoại trừ nó hữu ích trong chế độ CLI vì nó trả về mã thành công / lỗi cho hệ điều hành. Nó thực sự không dùng để xử lý lỗi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục được lưu trữ trong MySQL gây ra `` Lệnh không đồng bộ hóa ''

  2. Làm cách nào để chọn theo một loạt các ký tự bắt đầu?

  3. MySQL - Base64 so với BLOB

  4. SQLAlchemy JSON dưới dạng blob / text

  5. Nhập tệp sql bằng phpmyadmin trong EasyPHP