Beispiele für PHP mit MySQL-Transaktionen
Transaktionen in PHP und MySQL bieten eine Möglichkeit, sicherzustellen, dass eine Reihe von Datenbankoperationen als ausgeführt werden einzelne atomare Einheit. Dies bedeutet, dass entweder alle Vorgänge in der Transaktion in die Datenbank übernommen werden oder keine.
Beispiel
Um Transaktionen in PHP zu verwenden, können Sie den folgenden Code verwenden Snippet:
$db->beginTransaction(); $a1 = $db->query("INSERT INTO table_name VALUES (value1)"); $a2 = $db->query("INSERT INTO table_name VALUES (value2)"); if ($a1 and $a2) { $db->commit(); } else { $db->rollback(); }
In diesem Beispiel starten wir zunächst eine Transaktion mit $db->beginTransaction(). Anschließend führen wir zwei Abfragen $a1 und $a2 aus und prüfen, ob beide Abfragen erfolgreich sind. Wenn beide Abfragen erfolgreich sind, übergeben wir die Transaktion (commit()) und machen die Änderungen dauerhaft in der Datenbank. Andernfalls führen wir ein Rollback() der Transaktion durch und verwerfen alle während der Transaktion vorgenommenen Änderungen.
Alternativer Ansatz mit Try-Catch
Ein anderer Ansatz zur Abwicklung von Transaktionen ist die Verwendung von a Try-Catch-Block:
try { $db->beginTransaction(); $a1 = $db->query("INSERT INTO table_name VALUES (value1)"); $a2 = $db->query("INSERT INTO table_name VALUES (value2)"); $db->commit(); } catch (\Throwable $e) { $db->rollback(); throw $e; }
Bei diesem Ansatz starten wir die Transaktion in einem Try-Block. Wenn alle Abfragen erfolgreich sind, schreiben wir die Transaktion fest. Wenn eine der Abfragen fehlschlägt, setzen wir die Transaktion mit $db->rollback() zurück und lösen die Ausnahme zur Verarbeitung erneut aus.
Automatische Transaktionen
PHP bietet keine Möglichkeit, Transaktionen für alle Abfragen automatisch abzuwickeln. Sie müssen explizit angeben, welche Abfragen in eine Transaktion einbezogen werden sollen, indem Sie die Methoden beginTransaction() und commit() oder rollback() verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich die Datenintegrität bei PHP- und MySQL-Transaktionen sicherstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!