Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung von PHP-Transaktionen: Prinzipien, ACID-Eigenschaften und Verwendungsmethoden

Detaillierte Erläuterung von PHP-Transaktionen: Prinzipien, ACID-Eigenschaften und Verwendungsmethoden

M66 2025-10-25

Transaktionen in PHP-Übersicht

Transaktionen sind atomare Operationseinheiten in einer Datenbank, die entweder alle erfolgreich sind oder alle zurückgesetzt werden. PHP unterstützt Transaktionsvorgänge, wodurch die Sicherheit und Konsistenz von Datenbankvorgängen gewährleistet werden kann.

Was ist eine Transaktion?

Eine Transaktion ist eine vollständige Operationseinheit, in der alle Vorgänge entweder erfolgreich ausgeführt werden oder alle fehlschlagen und zurückgesetzt werden, um die Datenintegrität sicherzustellen.

ACID-Transaktionen in PHP

PHP unterstützt ACID-Transaktionen, einschließlich:

  • Atomarität: Alle Vorgänge in einer Transaktion sind entweder erfolgreich oder werden zurückgesetzt.
  • Konsistenz: Nach Abschluss der Transaktion bleibt der Datenbankstatus konsistent.
  • Isolation: Transaktionen stören sich nicht gegenseitig.
  • Haltbarkeit: Nachdem die Transaktion festgeschrieben wurde, werden die Operationsergebnisse dauerhaft gespeichert.

Transaktion starten

Verwenden Sie die Funktion mysqli_begin_transaction(), um eine Transaktion zu starten:

<?php
$conn = new mysqli("host", "username", "password", "database");
$conn-> begin_transaction();
?>

Transaktion festschreiben

Wenn alle Vorgänge in der Transaktion abgeschlossen sind, verwenden Sie mysqli_commit(), um die Transaktion festzuschreiben:

<?php
$conn-> begehen();
?>

Rollback-Transaktion

Wenn ein Vorgang in der Transaktion fehlschlägt, können Sie mysqli_rollback() verwenden, um die Transaktion rückgängig zu machen:

<?php
$conn-> rollback();
?>

Transaktionsbeispiel

Das folgende Beispiel zeigt, wie man mit Transaktionen in PHP arbeitet:

<?php
$conn = new mysqli("host", "username", "password", "database");

$conn-> begin_transaction();

$sql = "UPDATE-Benutzer SET-Kontostand = Kontostand + 100 WHERE id = 1";
$conn->query($sql);

$sql = "Konten aktualisieren SET-Kontostand = Kontostand - 100 WHERE id = 2";
$conn->query($sql);

$conn->commit();
?>

Wenn in diesem Beispiel die zweite Aktualisierungsanweisung fehlschlägt, wird die Transaktion zurückgesetzt und keiner der Vorgänge wird auf die Datenbank angewendet, wodurch Datenintegrität und -konsistenz sichergestellt werden.