PDO::rollBack – Rollback einer Transaktion (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::rollBack (void)
Rollback der aktuellen Transaktion, die von PDO::beginTransaction() initiiert wurde. Wenn keine Transaktion aktiv ist, wird eine PDOException geworfen.
Wenn die Datenbank auf den Autocommit-Modus eingestellt ist, stellt diese Funktion (Methode) den Autocommit-Modus nach einem Rollback der Transaktion wieder her.
Einige Datenbanken, einschließlich MySQL, lösen automatisch ein implizites Commit aus, wenn DLL-Anweisungen wie das Löschen oder Erstellen einer Datentabelle innerhalb einer Transaktion vorhanden sind. Durch das implizite Festschreiben können keine Änderungen im Rahmen dieser Transaktion rückgängig gemacht werden.
Gibt TRUE bei Erfolg oder FALSE bei Fehler zurück.
Das folgende Beispiel startet eine Transaktion und gibt zwei Anweisungen aus, die die Datenbank ändern, bevor die Änderungen rückgängig gemacht werden. Aber in MySQL schreibt die DROP TABLE-Anweisung die Transaktion automatisch fest, sodass alle Änderungen innerhalb dieser Transaktion nicht rückgängig gemacht werden.
<?php/* Eine Transaktion starten und Auto-Commit deaktivieren*/$dbh->beginTransaction();/* Datenbankschema und Daten ändern*/$sth = $dbh->exec("DROP TABLE Fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'");/* Fehler erkennen und Änderungen rückgängig machen*/$dbh->rollBack();/* An diesem Punkt kehrt die Datenbankverbindung in den Auto-Commit-Modus zurück*/?>