2016-12-16 5 views
2

Ich habe eine ganze Reihe von Prozessen, d. H. Datenbank speichern/aktualisieren Anrufe, Kommandozeilen-Interaktionen in einem Versuch Catch-Block.Rollback-Prozesse in einem Versuch catch Block

Ich wundere mich, wenn es eine Ausnahme erreicht, wird alles in den geschweiften Klammern versuchen, rückgängig gemacht und rückgängig gemacht?

Wenn nicht, was wäre der beste Weg, dies zu erreichen?

+1

Nein, normalerweise verwenden Sie ein [finally] (https://www.adayinthelifeof.nl/2013/02/12/php5-5-trycatchfinally/), wenn Sie Dinge tun, die im Falle einer Ausnahme freigegeben werden müssen . Wenn Sie Ihre Änderungen nur im Falle einer Ausnahme rückgängig machen müssen, fügen Sie einfach den Code ein, um die Änderungen im Block except rückgängig zu machen. – Natecat

Antwort

0

PHP steuert nicht, was Ihr Datenbankserver tut. Wenn Sie eine Datenbanktransaktion wünschen, müssen Sie den Datenbankserver anweisen, einen zu starten. Dies hängt natürlich vollständig von Ihrem DBMS ab.

Wenn das Datenbankmodul eine Transaktion unterstützt, werden nicht festgeschriebene Daten automatisch rückgängig gemacht, wenn das Skript beendet wird.

Verwandte Themen