PDO::rollBack
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::rollBack — Bir toplu hareketi geri alır
Açıklama
public PDO::rollBack():
bool
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.
Bağımsız Değişkenler
Bu işlevin bağımsız değişkeni yoktur.
Dönen Değerler
Başarı durumunda true
, başarısızlık durumunda false
döner.
Hatalar/İstisnalar
Etkin bir hareket yoksa bir PDOException yavrulanır.
Bilginize:
PDO::ATTR_ERRMODE
niteliği
PDO::ERRMODE_EXCEPTION
değilse bile bir istisna
yavrulanır.
Örnekler
Ö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
/* Ototeslim kipini kapatıp bir hareket başlatalım */
$dbh->beginTransaction();
/* Veritabanı şemasını ve verisini değiştirelim */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
/* Yanlışı farkedip değişiklikleri geri alıyoruz */
$dbh->rollBack();
/* Veritabanı bağlantısı tekrar ototeslim kipinde */
?>