Ich habe vor kurzem angefangen mit PHP/Laravel zu arbeiten (ich arbeite seit über 15 Jahren mit Java). Ich habe bemerkt, diesen Code in der Code-Basis:Laravel: Was ist, wenn Sie die manuell gestartete Transaktion nicht committen oder zurücksetzen?
public function doSomeStuffInDb() {
DB::beginTransaction();
// Some db calls here
DB::commit();
}
ich bereits in der Dokumentation, dass der richtige Weg, es zu tun ist DB::transaction
mit einem Verschluss der db Anrufe enthält, zu verwenden.
Aber ich frage mich, was passiert, wenn es eine Ausnahme gibt, die die Datenbank vor dem DB::commit()
Aufruf ruft? Ich nehme an, nichts wird in der Datenbank gespeichert werden, da Sie nicht commit, aber kann es weitere Konsequenzen haben (db Zeilensperren?)? Wird die Transaktion beim Verlassen der Funktion abgebrochen?
Wir verwenden MySQL, wenn das wichtig ist –