Der Transaktionsverarbeitungsmechanismus in PHP soll die Integrität von Datenbankoperationen sicherstellen. Er ermöglicht die vollständige oder vollständige Ausführung einer Reihe von Operationen. Dies wird erreicht, indem eine Transaktion gestartet, Vorgänge ausgeführt und die Transaktion je nach Bedarf festgeschrieben oder zurückgesetzt wird. Durch den Einsatz von Transaktionen können Sie sicherstellen, dass die Datenbank bei Aktualisierungen konsistent bleibt.
Detaillierte Erläuterung des Transaktionsverarbeitungsmechanismus in der PHP-Datenbankverbindung
Transaktionsverarbeitung
Die Transaktionsverarbeitung ist eine Reihe von Vorgängen, die die Integrität der Datenbank aufrechterhalten und so die Konsistenz der Datenbank sicherstellen. In PHP können Sie Transaktionen verwenden, um sicherzustellen, dass entweder alle oder keine einer Reihe von Vorgängen ausgeführt werden.
Transaktionsfunktionen
Um eine Transaktion zu starten, können Sie die folgende Funktion verwenden:
mysqli_begin_transaction($mysqli);
Sobald die Transaktion gestartet ist, können Sie Vorgänge ausführen. Nachdem alle Vorgänge ausgeführt wurden, kann die Transaktion festgeschrieben oder rückgängig gemacht werden:
mysqli_commit($mysqli); //提交事务 mysqli_rollback($mysqli); //回滚事务
Praktischer Fall
Angenommen, wir haben eine E-Commerce-Website, über die Benutzer Waren kaufen können. Wenn ein Benutzer eine Bestellung aufgibt, müssen die folgenden drei Tabellen aktualisiert werden:
users
-Tabelle – Benutzerinformationen users
表 - 用户信息orders
表 - 订单信息order_items
orders
-Tabelle – Bestellinformationen order_items
Tabelle – In der Bestellung enthaltene Artikel
<?php $mysqli = new mysqli("localhost", "root", "password", "ecomm"); // 开启事务 $mysqli->begin_transaction(); try { // 更新 users 表 $sql = "UPDATE users SET balance = balance - ? WHERE id = ?"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("di", $_POST['balance'], $_POST['user_id']); $stmt->execute(); // 更新 orders 表 $sql = "INSERT INTO orders (user_id, total_amount) VALUES (?, ?)"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("di", $_POST['user_id'], $_POST['total_amount']); $stmt->execute(); // 更新 order_items 表 foreach ($_POST['items'] as $item) { $sql = "INSERT INTO order_items (order_id, product_id, quantity, unit_price) VALUES (?, ?, ?, ?)"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("iiii", $last_inserted_order_id, $item['product_id'], $item['quantity'], $item['unit_price']); $stmt->execute(); } // 提交事务 $mysqli->commit(); echo "Order placed successfully!"; } catch (Exception $e) { // 如果出现异常,回滚事务 $mysqli->rollback(); echo "An error occurred while placing the order."; } ?>
Hinweise
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Transaktionsverarbeitungsmechanismus in der PHP-Datenbankverbindung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!