Din fråga ser helt felaktig ut, särskilt i din EXISTS underfråga. Du väljer MyTbl.ColA från tickets ???
Mitt råd skulle vara att helt enkelt lägga till en unik begränsning på MyTbl (ColA, ColB) .
ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);
Sedan, din INSERT kommer att misslyckas med en unik begränsningsöverträdelse som kan fångas i en 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;
}
}
}
För att åtgärda felmeddelandet du ser... det beror på att du inte skiljer på INSERT tabellen och sub-frågetabellen.