Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQLSTATE[23000]:Obsługa błędu naruszenia ograniczenia integralności

Twoje pytanie wydaje się być dość niejasne — albo chcesz zignorować naruszenia ograniczeń integralności, albo chcesz, aby były one sygnałem mówiącym „nie więcej wstawek”.

Oprócz odpowiedzi z insert ignore rozwiązanie - gdy wykonasz zapytanie i otrzymasz SQLSTATE[23000]: Integrity constraint violation błąd, co oznacza, że ​​PDO zgłasza wyjątek. Jeśli nie catch to twój skrypt zostaje zabity. Jeśli nie chcesz, aby został zabity, opakuj swój kod DB w konstrukcję try-catch, tj.:

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. Problem z konfiguracją modułu MySQLdb

  2. Jak zaktualizować wiele kolumn w MySQL

  3. Mysql DISTINCT nie działa, jeśli dodam kolejną kolumnę

  4. Upuść czas w DateTime

  5. Zapytanie SQL, wybierz tylko, jeśli kolumna nie jest pusta, w przeciwnym razie nie wybieraj