Twoje pytanie wydaje się być dość niejasne — albo chcesz zignorować naruszenia ograniczeń integralności, albo chcesz, aby były one sygnałem mówiącym „nie więcej wstawek”.
Oprócz odpowiedzi z insert ignore
rozwiązanie - gdy wykonasz zapytanie i otrzymasz SQLSTATE[23000]: Integrity constraint violation
błąd, co oznacza, że PDO zgłasza wyjątek. Jeśli nie catch
to twój skrypt zostaje zabity. Jeśli nie chcesz, aby został zabity, opakuj swój kod DB w konstrukcję 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