PDO::beginTransaction

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

PDO::beginTransactionBir toplu hareketi ilklendirir

Açıklama

PDO::beginTransaction ( void ) : bool

Özdevinimli gönderim kipini kapatır. Özdevinimli 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 özdevinimli 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 ö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 - ir 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 özdevinimli 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
/* Özdevinimli gönderim kipini kapatıp bir toplu hareket başlatalım */
$dbh->beginTransaction();

/* Veritabanı şemasını ve verisini değiştirgelim */
$sth $dbh->exec("DROP TABLE fruit");
$sth $dbh->exec("UPDATE dessert
    SET name = 'hamburger'"
);

/* Yanlışı farkedip hareketleri geri alıyoruz */
$dbh->rollBack();

/* Veritabanı bağlantısı tekrar özdevinimli gönderim kipinde. */
?>

Ayrıca Bakınız