Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQLSTATE[23000] :gestion des erreurs de violation de contrainte d'intégrité

Votre question semble assez vague - soit vous voulez ignorer vos violations de contraintes d'intégrité, soit vous voulez qu'elles soient un signal indiquant "plus d'insertions".

En plus de la réponse avec insert ignore solution - lorsque vous exécutez votre requête et obtenez SQLSTATE[23000]: Integrity constraint violation erreur, cela signifie que PDO lève une exception. Si vous ne catch ça, votre script est tué. Si vous ne voulez pas qu'il soit tué, encapsulez votre code DB dans la construction try-catch, c'est-à-dire :

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