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.

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 - 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ştirelim */
$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

User Contributed Notes 1 note

up
4
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