ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して MySQL トランザクションを実行するにはどうすればよいですか?

PHP を使用して MySQL トランザクションを実行するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-02 14:17:03431ブラウズ

PHP で MySQL トランザクションを実行すると、データの一貫性と整合性が保証されます。手順には以下が含まれます。 データベース接続の確立 トランザクションのオープン クエリの実行 トランザクションの送信 (すべてのクエリが成功) トランザクションのロールバック (クエリは失敗) 実際のケース: ショッピング カート アプリケーションでは、クエリが失敗した場合、トランザクションはロールされます。戻ると、ショッピング カートと商品は元に戻され、すべてのクエリが成功すると、トランザクションがコミットされ、変更が永続的に保存されます。

如何使用 PHP 执行 MySQL 事务?

PHP を使用して MySQL トランザクションを実行するにはどうすればよいですか?

トランザクションはデータベース内の一連の操作であり、すべての操作が正常に送信されるか、すべての操作がロールバックに失敗するかのいずれかです。 PHP でトランザクションを使用すると、データの一貫性と整合性が保証されます。

手順:

  1. データベース接続を確立する: mysqli_connect() 関数を使用して、MySQL データベースへの接続を確立します。 mysqli_connect() 函数建立与 MySQL 数据库的连接。
  2. 开启事务:使用 mysqli_begin_transaction() 函数开启事务。
  3. 执行查询:执行所有必要的查询。例如,更新表或插入数据。
  4. 提交事务:如果所有查询成功,使用 mysqli_commit() 函数提交事务。这将永久保存更改。
  5. 回滚事务:如果任何查询失败,使用 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。