特に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
を区別していないためです テーブルとサブクエリテーブル。