Heim > Backend-Entwicklung > PHP-Tutorial > Wie verwaltet man MySQL-Transaktionen effektiv in PHP?

Wie verwaltet man MySQL-Transaktionen effektiv in PHP?

Mary-Kate Olsen
Freigeben: 2024-12-19 10:41:16
Original
128 Leute haben es durchsucht

How to Manage MySQL Transactions Effectively in PHP?

Beispiele für PHP-MySQL-Transaktionen

Transaktionen in PHP und MySQL ermöglichen es Ihnen, eine Reihe von Abfragen als eine einzige atomare Arbeitseinheit zu gruppieren. Das bedeutet, dass alle durch die Transaktion vorgenommenen Änderungen rückgängig gemacht werden, wenn eine der Abfragen fehlschlägt.

So verwenden Sie Transaktionen

So verwenden Sie Transaktionen in PHP und MySQL, Sie müssen:

  1. Eine Transaktion starten, indem Sie mysql_query("SET AUTOCOMMIT=0") aufrufen und mysql_query("START TRANSACTION").
  2. Führen Sie Ihre Abfragen aus.
  3. Wenn alle Abfragen erfolgreich sind, schreiben Sie die Transaktion fest, indem Sie mysql_query("COMMIT") aufrufen.
  4. Wenn eine der Abfragen fehlschlägt, führen Sie durch einen Aufruf ein Rollback der Transaktion durch mysql_query("ROLLBACK").

Beispiel

Hier ist ein einfaches Beispiel für die Verwendung von Transaktionen in PHP und MySQL:

mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");

$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");

if ($a1 and $a2) {
    mysql_query("COMMIT");
} else {        
    mysql_query("ROLLBACK");
}
Nach dem Login kopieren

In diesem Beispiel wird die COMMIT-Anweisung nur ausgeführt, wenn sowohl $a1 als auch $a2 erfolgreich sind. Wenn eine der Abfragen fehlschlägt, wird die ROLLBACK-Anweisung ausgeführt.

Transaktionen mit PDO verwenden

Die PDO-Klasse bietet eine modernere und objektorientiertere Arbeitsweise MySQL-Transaktionen. Um Transaktionen mit PDO zu verwenden, müssen Sie:

  1. ein PDO-Objekt erstellen und das Attribut PDO::ATTR_ERRMODE auf PDO::ERRMODE_EXCEPTION setzen.
  2. Eine Transaktion durch Aufruf von $ starten pdo->beginTransaction().
  3. Führen Sie Ihre aus Abfragen.
  4. Wenn alle Abfragen erfolgreich sind, schreiben Sie die Transaktion fest, indem Sie $pdo->commit() aufrufen.
  5. Wenn eine der Abfragen fehlschlägt, setzen Sie die Transaktion zurück, indem Sie $pdo aufrufen ->rollback().

Beispiel

Hier ist ein Beispiel dafür So verwenden Sie Transaktionen mit PDO:

try {
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->beginTransaction();

    $pdo->exec("INSERT INTO rarara (l_id) VALUES('1')");
    $pdo->exec("INSERT INTO rarara (l_id) VALUES('2')");

    $pdo->commit();
} catch (\PDOException $e) {
    $pdo->rollback();
    throw $e;
}
Nach dem Login kopieren

In diesem Beispiel wird die Methode commit() nur aufgerufen, wenn beide Abfragen erfolgreich sind. Wenn eine der Abfragen fehlschlägt, wird die rollback()-Methode aufgerufen und eine Ausnahme ausgelöst.

Das obige ist der detaillierte Inhalt vonWie verwaltet man MySQL-Transaktionen effektiv in PHP?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage