PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::rollBackBir toplu hareketi geri alır

Açıklama

PDO::rollBack ( void ) : bool

PDO::beginTransaction() ile başlatılan toplu hareketi geri alır. Bir toplu hareket etkin değilken bu yöntemin çağrılması bir hataya sebep olur.

Eğer veritabanı özdevinimli gönderim kipindeyse, toplu hareket geri alındıktan sonra tekrar özdevinimli gönderim 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 özdevinimli 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.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Ö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 özdevinimli olarak COMMIT ettiğinden toplu harekete dahil hiçbir değişiklik artık geri alınamaz.

<?php
/* Özdevinimli gönderimi 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ı şimdi özdevinimli gönderim kipinde */
?>

Ayrıca Bakınız