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