PDO::beginTransaction

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

PDO::beginTransactionBir toplu hareketi ilklendirir

Açıklama

publicPDO::beginTransaction(): bool

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.

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

Hareket zaten başlatılmışsa veya sürücü hareketleri desteklemiyorsa bir PDOException istisnası yavrulanır.

Bilginize: PDO::ATTR_ERRMODE niteliği PDO::ERRMODE_EXCEPTION değilse bile bir istisna yavrulanır.

Örnekler

Ö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();


?>

Ayrıca Bakınız

To Top