PDO::commit

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

PDO::commitBir toplu hareketi veritabanına gönderir

Açıklama

public PDO::commit(): bool

Bir toplu hareketi veritabanına gönderir ve bir PDO::beginTransaction() çağrısı ile yeni bir toplu hareket başlatılıncaya kadar geçerli olmak üzere bağlantıyı ototeslim kipine sokar.

Değiştirgeler

Bu işlevin değiştirgesi 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 - Temel bir hareket teslimatı

<?php
/* Ototeslim kipini kapatıp bir hareket başlatalım */
$dbh->beginTransaction();

/* Çok sayıda kaydı ya hep ya hiç deyip veritabanına yerleştirelim */
$sql 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)'
;

$sth $dbh->prepare($sql);

foreach (
$fruits as $fruit) {
    
$sth->execute(array(
        
$fruit->name,
        
$fruit->colour,
        
$fruit->calories,
    ));
}

/* Değişiklikleri teslim edelim */
$dbh->commit();

/* Veritabanı bağlantısı tekrar ototeslim kipinde */
?>

Örnek 2 - Bir toplu hareketin teslim edilmesi

<?php
/* Ototeslim kipini kapatıp bir toplu hareket başlatalım */
$dbh->beginTransaction();

/* Veritabanı şemasını değiştirgelim */
$sth $dbh->exec("DROP TABLE fruit");

/* Değişiklikleri etkin kılalım */
$dbh->commit();

/* Veritabanı bağlantısı tekrar ototeslim kipinde. */
?>

Bilginize: (VTD: Veri Tanımlama Dili - ing: DDL) Tüm veritabanları hareketlerin VTD deyimleri üzerine işlem yapmasına izin vermez: Bazıları hata üretir, bazıları da (MySQL dahil) ilk VTD deyimine rastladığı anda hareketi otomatikman teslim eder.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 1 note

up
8
re_action
9 years ago
Keep in mind this bug: https://bugs.php.net/bug.php?id=66528

you could not rely on commit() return value while using MySql
To Top