sql >> Base de Datos >  >> RDS >> Mysql

SQLSTATE[23000]:manejo de errores de infracción de restricción de integridad

Su pregunta parece ser bastante vaga:desea ignorar las violaciones de las restricciones de integridad o desea que sean una señal que diga "no más inserciones".

Además de la respuesta con insert ignore solución:cuando ejecuta su consulta y obtiene SQLSTATE[23000]: Integrity constraint violation error, eso significa que PDO lanza una excepción. Si no catch es, su secuencia de comandos se mata. Si no desea que se elimine, envuelva su código DB en la construcción try-catch, es decir:

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