PDO::beginTransaction memulai transaksi (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::beginTransaction ( batal )
Matikan mode komitmen otomatis. Ketika mode autocommit dimatikan, perubahan yang dilakukan pada database melalui instance objek PDO tidak dilakukan sampai PDO::commit() dipanggil untuk mengakhiri transaksi.
Memanggil PDO::rollBack() akan mengembalikan perubahan yang dibuat pada database dan mengembalikan koneksi database ke mode komitmen otomatis.
Beberapa database, termasuk MySQL, secara otomatis melakukan transaksi implisit saat mengeluarkan pernyataan DDL seperti DROP TABLE atau CREATE TABLE.
Melakukan secara implisit akan mencegah Anda membatalkan perubahan lain apa pun dalam cakupan transaksi ini.
Contoh berikut memulai transaksi dan mengeluarkan dua pernyataan yang mengubah database sebelum mengembalikan perubahan.
Namun di MySQL, pernyataan DROP TABLE secara otomatis melakukan transaksi sehingga perubahan apa pun dalam transaksi ini tidak akan dibatalkan.
<?php/* Mulai transaksi dan matikan pengiriman otomatis*/$dbh->beginTransaction();/* Ubah struktur database dan data*/$sth = $dbh->exec("DROP TABLE buah");$ sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'");/* Kenali kesalahannya dan kembalikan perubahan*/$dbh->rollBack();/* Koneksi database sekarang kembali dalam mode autocommit*/?>