在 PHP 中執行 MySQL 事務可以確保資料的一致性和完整性。步驟包括:建立資料庫連線開啟事務執行查詢提交事務(所有查詢成功)回滾事務(任何查詢失敗)實戰案例:購物車應用程式中,如果任何查詢失敗,將回滾事務,撤消對購物車和產品表的更改;如果所有查詢都成功,則提交事務,永久保存更改。
如何使用 PHP 執行 MySQL 交易?
交易是資料庫中的一系列操作,要麼全部成功提交,要麼全部回滾失敗。在 PHP 中使用交易可以確保資料的一致性和完整性。
步驟:
mysqli_connect()
函數建立與MySQL 資料庫的連接。 mysqli_begin_transaction()
函數開啟交易。 mysqli_commit()
函數提交交易。這將永久保存更改。 mysqli_rollback()
函數回滾交易。這將撤銷所有在交易中進行的變更。 實戰案例:
考慮一個簡單的購物車應用程序,其中用戶為他們的購物車添加商品。以下程式碼顯示如何使用事務來實現此功能:
// 建立数据库连接 $conn = new mysqli("localhost", "username", "password", "database"); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 开启事务 $conn->begin_transaction(); // 插入新项目到购物车表中 $sql = "INSERT INTO cart (product_id, user_id, quantity) VALUES (?, ?, ?)"; $stmt = $conn->prepare($sql); $stmt->bind_param("iii", $productId, $userId, $quantity); $stmt->execute(); // 更新产品表中的库存 $sql = "UPDATE products SET stock = stock - ? WHERE product_id = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ii", $quantity, $productId); $stmt->execute(); // 检查是否有任何查询失败 if ($stmt->error) { // 回滚事务 $conn->rollback(); echo "添加商品到购物车失败!"; exit(); } // 提交事务 $conn->commit(); echo "商品已成功添加到购物车!";
在上面的範例中,如果任何查詢(插入購物車表或更新產品表)失敗,事務將回滾,購物車中的更改將被撤銷。如果所有查詢都成功,那麼事務將會提交,並且對購物車和產品表的變更將永久保存。
以上是如何使用 PHP 執行 MySQL 事務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!