(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::rollBack — Bir toplu hareketi geri alır
PDO::beginTransaction() ile başlatılan toplu hareketi geri alır.
Eğer veritabanı ototeslim kipindeyse, toplu hareket geri alındıktan sonra tekrar ototeslim kipine dönülür.
MySQL dahil bazı veritabanları, bir toplu hareketin içinde DROP TABLE veya CREATE TABLE gibi bir veritabanı tanımlama dili deyimi kullanıldığında otomatikman örtük bir PDO::commit() yaparlar. Örtük PDO::commit(), toplu hareket içindeki diğer değişikliklerin de geri alınmasını engeller.
Bu işlevin bağımsız değişkeni yoktur.
Etkin bir hareket yoksa bir PDOException yavrulanır.
Bilginize:
PDO::ATTR_ERRMODE
niteliğiPDO::ERRMODE_EXCEPTION
değilse bile bir istisna yavrulanır.
Örnek 1 - Bir toplu hareketin geri alınması
Aşağıdaki örnekte bir toplu hareket başlatılmakta, değişiklikleri geri almadan önce veritabanında değişiklik yapan iki deyim gönderilmektedir. Bununla birlikte MySQL'de, DROP TABLE deyimi hareketi otomatik olarak COMMIT ettiğinden toplu harekete dahil hiçbir değişiklik artık geri alınamaz.
<?php
$dbh->beginTransaction();
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
$dbh->rollBack();
?>