sql >> Databáze >  >> RDS >> Mysql

SQLSTATE[23000]:Zpracování chyb porušení integritního omezení

Vaše otázka se zdá být dosti vágní – buď chcete ignorovat svá porušení integritních omezení, nebo chcete, aby to byl signál, který říká „už žádné vložky“.

Kromě odpovědi s insert ignore řešení – když spustíte dotaz a získáte SQLSTATE[23000]: Integrity constraint violation chyba, to znamená, že PDO vyvolá výjimku. Pokud catch váš skript je zabit. Pokud nechcete, aby byl zabit, zabalte svůj kód DB do konstrukce 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. Multiplikační agregační operátor v SQL

  2. Rozdělte časové období na jeden řádek za měsíc na serveru SQL

  3. SQLite transakce

  4. špatný argument č. 1 k 'ipairs' (tabulka očekávána, má boolean)