あなたの質問は非常に曖昧に見えます-整合性制約違反を無視するか、「これ以上挿入しない」という合図にしたいのです。
insert ignore
での答えに加えて 解決策-クエリを実行してSQLSTATE[23000]: Integrity constraint violation
を取得した場合 エラー、つまりPDOが例外をスローします。 catch
をしない場合 それ、あなたのスクリプトは殺されます。強制終了したくない場合は、DBコードをtry-catchコンストラクトにラップします。例:
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