Transaktionen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

$db->{RaiseError} = 1;
$db->{AutoCommit} = 0;

$db->commit;
eval {
   # diverse Datenbank-Operationen
};
if ($@) {
   $db->rollback;
} else {
   $db->commit;
}

*In der Voreinstellung (AutoCommit ist eingeschaltet), wird jede SQL-Anweisung in einer separaten Transaktion abgehandelt, d.h. nach jeder erfolgreichen Anweisung wird der neue Stand permanent.
 
*Wenn der Umfang einer Transaktion größer sein soll und dies die Datenbank unterstützt (ist z.B. bei MySQL oder msql nicht der Fall), dann muß AutoCommit auf 0 gesetzt werden.
 
*Unabhängig von der Vorstellung der eigentlichen Datenbank ist aus der Sicht eines Benutzers der DBI-Schnittstelle immer eine Transaktion aktiv. Durch die commit-Operation wird somit die alte Transaktion beendet und gleichzeitig eine neue begonnen.
 
*Mit rollback kann eine Transaktion abgebrochen werden.
 
*Zwischenpunkte für rollback innerhalb einer Transaktion werden von DBI nicht unterstützt.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000