Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQLSTATE[23000]:tratamento de erro de violação de restrição de integridade


Sua pergunta parece ser bastante vaga - ou você deseja ignorar suas violações de restrição de integridade ou deseja que elas sejam um sinal dizendo "não há mais inserções".

Além da resposta com insert ignore solução - quando você executa sua consulta e obtém SQLSTATE[23000]: Integrity constraint violation erro, isso significa que PDO lança exceção. Se você não catch isso, seu script é morto. Se você não quiser que ele seja morto, envolva seu código de banco de dados na construção try-catch, ou seja:
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