sql >> Database teknologi >  >> RDS >> Mysql

SQLSTATE[23000]:Fejlhåndtering af overtrædelse af integritetsbegrænsning

Dit spørgsmål ser ud til at være ret vagt - enten vil du ignorere dine integritetsbegrænsninger, eller du vil have dem til at være et signal, der siger "ikke flere indlæg".

Ud over svaret med insert ignore løsning - når du udfører din forespørgsel og får SQLSTATE[23000]: Integrity constraint violation fejl, det betyder PDO kaster undtagelse. Hvis du ikke catch det, dit script er dræbt. Hvis du ikke vil have den dræbt, skal du pakke din DB-kode ind i try-catch-konstruktionen, dvs.:

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. Entity Framework 6 - Timing forespørgsler

  2. MySql primær nøgle begrænsning med navn

  3. Spring Data JPA med Java 8 LocalDateTime

  4. Postgres tid med tidszone lighed