Heim > Backend-Entwicklung > PHP-Tutorial > Wie starte und beende ich Transaktionen in MySQLi?

Wie starte und beende ich Transaktionen in MySQLi?

DDD
Freigeben: 2024-12-06 21:13:12
Original
915 Leute haben es durchsucht

How Do I Start and End Transactions in MySQLi?

Transaktion in MySQLi starten und beenden

Bei der Verwendung von MySQL ist es wichtig zu verstehen, wie Transaktionen funktionieren. Transaktionen dienen dazu, mehrere Abfragen zu gruppieren und sicherzustellen, dass sie atomar ausgeführt werden, was bedeutet, dass entweder alle oder keine der Abfragen erfolgreich sind.

Starten einer Transaktion

In MySQLi wird eine Transaktion durch Deaktivieren initiiert den Autocommit-Modus mit der Anweisung autocommit(FALSE). Autocommit ist das Standardverhalten von MySQL, was bedeutet, dass jede Abfrage unabhängig und sofort ausgeführt wird. Durch Deaktivieren von Autocommit aktivieren Sie die Transaktionssteuerung, sodass Sie mehrere Abfragen gruppieren und als eine Einheit ausführen können.

Beenden einer Transaktion

Nachdem Sie die gewünschten Abfragen innerhalb der Transaktion gruppiert haben, müssen Sie dies explizit tun Schluss damit. Es gibt zwei Möglichkeiten, eine Transaktion zu beenden:

  1. Commit: Wenn alle Abfragen innerhalb der Transaktion erfolgreich und ohne Fehler ausgeführt wurden, können Sie die Transaktion mit der Methode commit() abschließen. Dadurch werden alle während der Transaktion vorgenommenen Änderungen dauerhaft in der Datenbank gespeichert.
  2. Rollback: Wenn eine der Abfragen innerhalb der Transaktion fehlgeschlagen ist, können Sie die Transaktion mit der Methode rollback() abbrechen . Dadurch werden alle während der Transaktion vorgenommenen Änderungen verworfen und die Datenbank in den Zustand vor Beginn der Transaktion zurückversetzt.

Beispiel

Betrachten Sie das folgende PHP-Code-Snippet:

<?php
// Database connection
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

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

// Queries within the transaction
$mysqli->query('UPDATE `table` SET `column` = 1');
$mysqli->query('UPDATE `table1` SET `column1` = 2');

// Commit or rollback
if ($allQueriesExecutedSuccessfully) {
  $mysqli->commit();
} else {
  $mysqli->rollback();
}
?>
Nach dem Login kopieren

In diesem Beispiel wird der Autocommit-Modus mit autocommit(FALSE) deaktiviert, wodurch eine Transaktion initiiert wird. Innerhalb der Transaktion werden mehrere Abfragen ausgeführt. Basierend auf dem Ausführungsstatus wird die Transaktion entweder festgeschrieben oder zurückgesetzt.

Das obige ist der detaillierte Inhalt vonWie starte und beende ich Transaktionen in MySQLi?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage