Mysql
 sql >> база данни >  >> RDS >> Mysql

SQLSTATE[23000]:Обработка на грешка при нарушение на ограничението на целостта

Въпросът ви изглежда доста неясен – или искате да игнорирате нарушенията на ограниченията си за целостта, или искате те да са сигнал, който казва „без повече вмъквания“.

В допълнение към отговора с insert ignore решение - когато изпълните заявката си и получите SQLSTATE[23000]: Integrity constraint violation грешка, това означава, че PDO хвърля изключение. Ако не catch това, вашият скрипт е убит. Ако не искате да бъде убит, увийте своя DB код в конструкция try-catch, т.е.:

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. Правилен начин за съхраняване на часова зона в база данни?

  2. Каква е целта на $CONDITIONS под --query?

  3. Преразпределете гласовете, като елиминирате кандидатите

  4. Как да поправите повредена таблица на xampp 'mysql.user'?

  5. Codeigniter Присъединяване с множество условия