Komit automatik PDO berbeza daripada komit automatik MySQL. Ini bermakna jika anda menetapkan nilai autocommit kepada lalai kepada 0 dalam konfigurasi MySQL anda, ia tidak akan mengubah nilai lalai PDO::ATTR_AUTOCOMMIT. Nilai lalai PDO::ATTR_AUTOCOMMIT sentiasa benar.
Menukar nilai PDO::ATTR_AUTOCOMMIT kepada nilai yang sama atau mana-mana nilai lain yang bukan boolean atau integer akan diabaikan. Ini bermakna kedua-dua operasi adalah tanpa operasi:
$pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, true); // 因為默認(rèn)值是true $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1); // 轉(zhuǎn)換為布爾值true,與默認(rèn)值相同
Anda boleh menipunya dengan melumpuhkan dan mendayakan PDO::ATTR_AUTOCOMMIT:
$pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false); $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, true);
Ini akan membuat dua panggilan ke pelayan MySQL dan harus menetapkan nilai autokomit MySQL kepada 1