(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::beginTransaction — Bir toplu hareketi ilklendirir
Ototeslim kipini kapatır. Otomatik kip kapalıyken PDO nesne örneği üzerinden veritabanında yapılan değişiklikler PDO::commit() çağrısı ile toplu hareket tamamlanmadan veritabanında bir değişikliğe yol açmaz. Toplu hareketlerle yapılan değişiklikleri geri almak ve tekrar otomatik kipe dönmek için PDO::rollBack() yöntemini kullanabilirsiniz.
MySQL dahil bazı veritabanları, bir toplu hareketin içinde DROP TABLE veya CREATE TABLE gibi bir veritabanı tanımlama dili deyimi kullanıldığında otomatik olarak örtük bir PDO::commit() yaparlar. Örtük PDO::commit(), toplu hareket içindeki diğer değişikliklerin de geri alınmasına engeller.
Bu işlevin bağımsız değişkeni yoktur.
Hareket zaten başlatılmışsa veya sürücü hareketleri desteklemiyorsa bir PDOException istisnası yavrulanır.
Bilginize:
PDO::ATTR_ERRMODE
niteliğiPDO::ERRMODE_EXCEPTION
değilse bile bir istisna yavrulanır.
Örnek 1 - Bir toplu hareketi geri almak
Aşağıdaki örnekte bir toplu hareket başlatılmakta, değişiklikler geri alınmadan önce iki deyim çalıştırılmaktadır. Ancak, MySQL'de DROP TABLE deyimi otomatik bir PDO::commit() çağrısına sebep olduğundan bu deyimden önce toplu hareket dahilinde yapılan hiçbir hareket geri alınamaz.
<?php
$dbh->beginTransaction();
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
$dbh->rollBack();
?>