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

SQLSTATE [23000]:Xử lý lỗi vi phạm ràng buộc toàn vẹn

Câu hỏi của bạn có vẻ khá mơ hồ - bạn muốn bỏ qua các vi phạm ràng buộc về tính toàn vẹn của mình hoặc bạn muốn chúng trở thành một tín hiệu cho biết "không cần chèn thêm nữa".

Ngoài câu trả lời với insert ignore giải pháp - khi bạn thực thi truy vấn của mình và nhận được SQLSTATE[23000]: Integrity constraint violation lỗi, điều đó có nghĩa là PDO ném ra ngoại lệ. Nếu bạn không catch nó, tập lệnh của bạn bị giết. Nếu bạn không muốn nó bị giết, hãy bọc mã DB của bạn vào cấu trúc try-catch, tức là:

try {
    // code here
    $insertItem = $db->query("
                              INSERT INTO cart (userid, itemid) 
                              VALUES (:userid, :itemid)", 
                              array("userid"=>"175", "itemid"=>"12")
                            );
    // more code here
} catch(Exception $e) {
    // handle exception - 
    // find out if it is caused by integrity contraints violations
    // and if it is - merely go further
    // otherwise do something else, like re-throwing your exception
}

HTH



  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êm Mô hình dữ liệu thực thể ADO.NET trong VS 2017 và không có gì xảy ra

  2. Cập nhật / Tăng một cột trên nhiều hàng cùng một lúc

  3. Tạo cơ sở dữ liệu MySQL từ Java

  4. Làm cách nào để truyền DATETIME thành DATE trong mysql?

  5. Điều khoản OUTPUT trong MySQL