sql >> Database >  >> RDS >> Mysql

SQLSTATE[23000]:Foutafhandeling van schending van integriteitsbeperking

Uw vraag lijkt nogal vaag te zijn - of u wilt uw schendingen van integriteitsbeperkingen negeren, of u wilt dat ze een signaal zijn dat zegt "geen inserts meer".

Naast het antwoord met insert ignore oplossing - wanneer u uw query uitvoert en SQLSTATE[23000]: Integrity constraint violation fout, dat betekent dat PDO een uitzondering genereert. Als je niet catch het, je script wordt gedood. Als je niet wilt dat het wordt gedood, wikkel je DB-code dan in een try-catch-constructie, d.w.z.:

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. Hoe de ware grootte van de MySQL-database te krijgen?

  2. OFFSET versus ROW_NUMBER()

  3. Bepaal Oracle null ==null

  4. Wat is MariaDB Enterprise Cluster?