Ihre Abfrage sieht völlig durcheinander aus, besonders in Ihren EXISTS
Unterabfrage. Sie wählen MyTbl.ColA
aus von tickets
???
Mein Rat wäre, einfach eine eindeutige Einschränkung für MyTbl (ColA, ColB)
hinzuzufügen .
ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);
Dann Ihr INSERT
schlägt mit einer eindeutigen Einschränkungsverletzung fehl die in einer PDOException
abgefangen werden können .
$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;
}
}
}
Um die Fehlermeldung zu beheben, die Sie sehen ... es liegt daran, dass Sie nicht zwischen INSERT
unterscheiden Tabelle und die Unterabfragetabelle.