ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して MySQL トランザクションを実行するにはどうすればよいですか?
PHP で MySQL トランザクションを実行すると、データの一貫性と整合性が保証されます。手順には以下が含まれます。 データベース接続の確立 トランザクションのオープン クエリの実行 トランザクションの送信 (すべてのクエリが成功) トランザクションのロールバック (クエリは失敗) 実際のケース: ショッピング カート アプリケーションでは、クエリが失敗した場合、トランザクションはロールされます。戻ると、ショッピング カートと商品は元に戻され、すべてのクエリが成功すると、トランザクションがコミットされ、変更が永続的に保存されます。
PHP を使用して MySQL トランザクションを実行するにはどうすればよいですか?
トランザクションはデータベース内の一連の操作であり、すべての操作が正常に送信されるか、すべての操作がロールバックに失敗するかのいずれかです。 PHP でトランザクションを使用すると、データの一貫性と整合性が保証されます。
手順:
mysqli_connect()
関数を使用して、MySQL データベースへの接続を確立します。 mysqli_connect()
函数建立与 MySQL 数据库的连接。mysqli_begin_transaction()
函数开启事务。mysqli_commit()
函数提交事务。这将永久保存更改。mysqli_rollback()
: 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 中国語 Web サイトの他の関連記事を参照してください。