Câu hỏi của bạn có vẻ khá mơ hồ - bạn muốn bỏ qua các vi phạm ràng buộc về tính toàn vẹn của mình hoặc bạn muốn chúng trở thành một tín hiệu cho biết "không cần chèn thêm nữa".
Ngoài câu trả lời với insert ignore
giải pháp - khi bạn thực thi truy vấn của mình và nhận được SQLSTATE[23000]: Integrity constraint violation
lỗi, điều đó có nghĩa là PDO ném ra ngoại lệ. Nếu bạn không catch
nó, tập lệnh của bạn bị giết. Nếu bạn không muốn nó bị giết, hãy bọc mã DB của bạn vào cấu trúc try-catch, tức là:
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