Heim > Backend-Entwicklung > PHP-Tutorial > In PHP löst das Programm nach dem Starten einer Transaktion eine Ausnahme aus und es wird weder ein Commit noch ein Rollback ausgeführt. Wird die MySQL-Transaktion zurückgesetzt?

In PHP löst das Programm nach dem Starten einer Transaktion eine Ausnahme aus und es wird weder ein Commit noch ein Rollback ausgeführt. Wird die MySQL-Transaktion zurückgesetzt?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-08-10 09:07:17
Original
2265 Leute haben es durchsucht

Einige Leute im Internet sagten, dass nach dem Öffnen einer Transaktion ein SQL-Anweisungsausführungsfehler oder ein Programmfehler auftritt. Wenn das Rollback nicht ausgeführt wird, wird das Commit beim nächsten Ausführen automatisch festgeschrieben kein Rollback-Rollback

Aber einige Leute sagen, dass Ausnahmen ausgelöst werden, wenn MySQL nicht festgeschriebene Transaktionen hat, sollte der automatisch übermittelte Parameter AUTOCOMMIT zu diesem Zeitpunkt 0 sein.

Wenn Sie jedoch MySQL-Treiber in anderen Sprachen verwenden, verfügen diese Treiber im Allgemeinen über die Funktion, AUTOCOMMIT automatisch wiederherzustellen. Nach Abschluss der Anforderungsverarbeitung werden nicht verarbeitete Transaktionen automatisch zurückgesetzt.

Antwortinhalt:

Einige Leute im Internet sagten, dass nach dem Öffnen einer Transaktion ein SQL-Anweisungsausführungsfehler oder ein Programmfehler auftritt. Wenn das Rollback nicht ausgeführt wird, wird das Commit beim nächsten Ausführen automatisch festgeschrieben kein Rollback-Rollback


Aber einige Leute sagen, dass Ausnahmen ausgelöst werden, wenn MySQL nicht festgeschriebene Transaktionen hat, sollte der automatisch übermittelte Parameter AUTOCOMMIT zu diesem Zeitpunkt 0 sein.

Wenn Sie jedoch MySQL-Treiber in anderen Sprachen verwenden, verfügen diese Treiber im Allgemeinen über die Funktion, AUTOCOMMIT automatisch wiederherzustellen. Nach Abschluss der Anforderungsverarbeitung werden nicht verarbeitete Transaktionen automatisch zurückgesetzt.


Ich gehe standardmäßig davon aus, dass Sie PDO verwenden.

Das offizielle Dokument sagt Folgendes:


Wenn das Skript endet oder eine Verbindung geschlossen werden soll und Sie eine ausstehende Transaktion haben, setzt PDO diese automatisch zurück. Dies ist eine Sicherheitsmaßnahme, um Inkonsistenzen in den Fällen zu vermeiden, in denen das Skript beendet wird unerwartet – wenn Sie die Transaktion nicht explizit festgeschrieben haben, wird davon ausgegangen, dass etwas schief gelaufen ist, daher wird das Rollback zur Sicherheit Ihrer Daten durchgeführt.
Wenn das Skript endet oder wenn eine Verbindung geschlossen werden soll


Das bedeutet, dass das Skript endet (einschließlich normalem Ende oder abnormalem Ende).

PDO führt automatisch einen Rollback durch

PDO wird automatisch zurückgesetzt.
Das Dokument hat es sehr deutlich gemacht.

Wenn Sie den PDO-Treiber nicht verwenden, können Sie die entsprechende Treiberdokumentation überprüfen oder in der Frage klar angeben, welchen Treiber Sie verwenden.

Übrigens wird die bisherige Funktion mysql_connect() offiziell nicht mehr empfohlen (war veraltet).

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
So ändern Sie MySQL in MySQL
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Startfehler unter Centos
Aus 1970-01-01 08:00:00
0
0
0
MySQL stoppt den Prozess
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage