Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQLSTATE [23000]:Penanganan kesalahan pelanggaran batasan integritas

Pertanyaan Anda tampaknya cukup kabur - apakah Anda ingin mengabaikan pelanggaran batasan integritas, atau Anda ingin itu menjadi sinyal yang mengatakan "tidak ada lagi penyisipan".

Selain jawaban dengan insert ignore solusi - saat Anda menjalankan kueri dan mendapatkan SQLSTATE[23000]: Integrity constraint violation kesalahan, itu berarti PDO melempar pengecualian. Jika Anda tidak catch itu, skrip Anda terbunuh. Jika Anda tidak ingin itu dimatikan, bungkus kode DB Anda ke dalam konstruksi try-catch, yaitu:

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. Akses ditolak untuk pengguna 'nama pengguna'@'localhost' (menggunakan kata sandi:YA) di C:\webdev\wamp\www\membershipSite\classes\Mysql.php pada baris 9

  2. Urutan default MySQL tergantung pada WHERE

  3. Lintasan pohon umum (tak terbatas) dengan cara pencarian luas-pertama

  4. Apakah Sphinx beta boleh digunakan dalam produksi?

  5. Melewati array melalui AJAX dari php ke javascript