Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwaltet man MySQL-Datenbanktransaktionen mit der mysqli-Erweiterung von PHP?

Wie verwaltet man MySQL-Datenbanktransaktionen mit der mysqli-Erweiterung von PHP?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 11:51:13646Durchsuche

How to Manage MySQL Database Transactions with PHP's mysqli Extension?

MySQL-Datenbank mit Transaktionen abfragen

Transaktionen mit mysqli verwenden

Transaktionen sind ein entscheidender Aspekt der Datenbankverwaltung und stellen sicher, dass eine Abfolge von Datenbankoperationen gewährleistet ist entweder vollständig ausgeführt oder zurückgesetzt, wenn ein Fehler auftritt. Mit der mysqli-Erweiterung von MySQL für PHP werden Transaktionen über zwei wesentliche Funktionen abgewickelt:

$mysqli->autocommit(FALSE); // Start transaction
$mysqli->commit(); // End transaction

Eine Transaktion starten

Um eine Transaktion zu initiieren, müssen Sie $mysqli->autocommit(FALSE) aufrufen );. Dadurch wird die automatische Festschreibung deaktiviert, sodass Sie mehrere Abfragen innerhalb derselben Transaktion ausführen können.

Abfragen innerhalb einer Transaktion ausführen

Sobald eine Transaktion gestartet ist, können Sie darin eine beliebige Anzahl von Abfragen ausführen. Diese Abfragen werden jedoch erst dann dauerhaft auf die Datenbank angewendet, wenn Sie die Transaktion explizit festschreiben.

Eine Transaktion festschreiben

Das $mysqli->commit(); Die Funktion schließt die Transaktion ab und wendet alle während dieser Transaktion vorgenommenen Änderungen auf die Datenbank an. Wenn keine Fehler vorliegen, ist die Transaktion erfolgreich und die Änderungen werden dauerhaft.

Eine Transaktion rückgängig machen

Wenn während einer Transaktion ein Fehler auftritt oder Sie die vorgenommenen Änderungen rückgängig machen müssen , können Sie mysqli->rollback(); aufrufen. anstelle von mysqli->commit();. Dadurch werden alle innerhalb dieser Transaktion vorgenommenen Änderungen verworfen und die Datenbank kehrt in ihren vorherigen Zustand zurück.

Beispiel

Der folgende Codeausschnitt zeigt, wie eine Transaktion in MySQL gestartet und beendet wird:

$mysqli->autocommit(FALSE);

$mysqli->query("UPDATE `table` SET `col` = 2");
$mysqli->query("UPDATE `table1` SET `col1` = 3");

$mysqli->commit(); // End transaction

In diesem Beispiel werden die beiden Abfrageanweisungen innerhalb derselben Transaktion ausgeführt. Es werden jedoch keine Änderungen an der Datenbank vorgenommen, bis die Transaktion festgeschrieben wird. Wenn ein Fehler auftritt, bevor $mysqli->commit(); aufgerufen wird, können die Änderungen durch den Aufruf von $mysqli->rollback();.

rückgängig gemacht werden

Das obige ist der detaillierte Inhalt vonWie verwaltet man MySQL-Datenbanktransaktionen mit der mysqli-Erweiterung von PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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