PDO::rollBack

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

PDO::rollBackMacht eine Transaktion rückgängig (Rollback)

Beschreibung

publicPDO::rollBack(): bool

Macht die aktuelle durch PDO::beginTransaction() gestartete Transaktion rückgängig.

Falls die Datenbank auf den Autocommit-Modus eingestellt war, wird er wiederhergestellt, nachdem die Transaktion zurückgesetzt wurde.

Wenn im Rahmen einer Transaktion eine DDL- (Database Definition Language) Anweisung wie DROP TABLE oder CREATE TABLE ausgeführt wird, geben einige Datenbanken, darunter auch MySQL, ein implizites COMMIT aus. Durch das implizite COMMIT wird verhindert, dass weitere im Rahmen der Transaktion vorgenommene Änderungen rückgängig gemacht werden können.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Fehler/Exceptions

Wenn es keine aktive Transaktion gibt, wird eine PDOException ausgelöst.

Hinweis: Eine Exception wird auch dann ausgelöst, wenn das Attribut PDO::ATTR_ERRMODE nicht PDO::ERRMODE_EXCEPTION ist.

Beispiele

Beispiel #1 Rückgängigmachen einer Transaktion

Im folgenden Beispiel wird eine Transaktion gestartet und es werden zwei Anweisungen ausgeführt, die die Datenbank verändern, bevor die Änderungen rückgängig gemacht werden. Bei MySQL wird die Transaktion jedoch durch die Anweisung DROP TABLE automatisch bestätigt, sodass keine der Änderungen dieser Transaktion rückgängig gemacht wird.

<?php

$dbh->beginTransaction();


$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'"
);


$dbh->rollBack();


?>

Siehe auch

To Top