Pembaruan 2018:DEV tidak menganggap ini sebagai bug, tetapi perilaku yang dimaksudkan. Jadi, Pengguna PHP harus menerimanya, Laporan ditutup untuk pertanyaan di masa mendatang...
Ini sering dilaporkan sebagai bug dengan PDO
:https://bugs.php.net/bug.php?id=61613
Itu hanya akan mengeluarkan pengecualian jika PERTAMA Pernyataan tidak valid. Jika pernyataan pertama berjalan lancar, Anda tidak akan mendapatkan kesalahan - Dan pernyataan pertama Anda valid:
INSERT INTO `a` (`b`, `c`) VALUES
(1, 1),
(2, 2),
(3, 2);
sebagai solusi - atau menurut pengguna dihapus cara melakukannya yang benar - Anda perlu memproses rowsets satu per satu (diambil dari komentar laporan bug):
$pdo->beginTransaction();
try {
$statement = $pdo->prepare($sql);
$statement->execute();
while ($statement->nextRowset()) {/* https://bugs.php.net/bug.php?id=61613 */};
$pdo->commit();
} catch (\PDOException $e) {
$pdo->rollBack();
throw $e;
}