आपकी क्वेरी पूरी तरह से गड़बड़ दिखती है, खासकर आपके EXISTS
. में उप-क्वेरी। आप MyTbl.ColA
. का चयन कर रहे हैं tickets
. से ???
मेरी सलाह होगी कि बस MyTbl (ColA, ColB)
पर एक अद्वितीय बाधा जोड़ें। ।
ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);
फिर, आपका INSERT
अद्वितीय बाधा उल्लंघन के साथ विफल हो जाएगा जिसे PDOException
. में पकड़ा जा सकता है ।
$stmt = $pdo->prepare('INSERT INTO MyTbl (ColA, ColB) VALUES (?, ?)');
foreach ($loopme as $foo) {
try {
$stmt->execute([$foo->fooA, $foo->fooB]);
} catch (PDOException $e) {
$errorCode = $stmt->errorInfo()[1];
if ($errorCode == 1586) {
// I think 1586 is the unique constraint violation error.
// Trial and error will confirm :)
} else {
throw $e;
}
}
}
आप जो त्रुटि संदेश देख रहे हैं उसे संबोधित करने के लिए... ऐसा इसलिए है क्योंकि आप INSERT
के बीच अंतर नहीं कर रहे हैं तालिका और उप-क्वेरी तालिका।