Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwaltet man MySQL-Datenbanktransaktionen mit der mysqli-Erweiterung von PHP?
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
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.
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.
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.
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.
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 werdenDas 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!