ホームページ >バックエンド開発 >PHPチュートリアル >PHP の mysqli 拡張機能を使用して MySQL データベース トランザクションを管理するにはどうすればよいですか?

PHP の mysqli 拡張機能を使用して MySQL データベース トランザクションを管理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 11:51:13639ブラウズ

How to Manage MySQL Database Transactions with PHP's mysqli Extension?

トランザクションを使用した MySQL データベースのクエリ

mysqli でのトランザクションの使用

トランザクションはデータベース管理の重要な側面であり、一連のデータベース操作が確実に行われるようにします。完全に実行されるか、エラーが発生した場合はロールバックされます。 MySQL の PHP 用 mysqli 拡張機能を使用すると、トランザクションは 2 つの重要な関数を通じて処理されます。

$mysqli->autocommit(FALSE); // Start transaction
$mysqli->commit(); // End transaction

トランザクションの開始

トランザクションを開始するには、$mysqli->autocommit(FALSE) を呼び出す必要があります。 );。これにより自動コミットが無効になり、同じトランザクション内で複数のクエリを実行できるようになります。

トランザクション内でのクエリの実行

トランザクションが開始されると、その中で任意の数のクエリを実行できます。ただし、これらのクエリは、トランザクションを明示的にコミットするまでデータベースに永続的に適用されません。

トランザクションのコミット

$mysqli->commit();この関数はトランザクションを終了し、そのトランザクション中に行われたすべての変更をデータベースに適用します。エラーがない場合、トランザクションは成功し、変更は永続的になります。

トランザクションのロールバック

トランザクション中にエラーが発生した場合、または行った変更を元に戻す必要がある場合、mysqli->rollback(); を呼び出すことができます。 mysqli->commit(); の代わりに。これにより、そのトランザクション内で行われたすべての変更が破棄され、データベースは以前の状態に戻ります。

次のコード スニペットは、mysqli でトランザクションを開始および終了する方法を示しています。

$mysqli->autocommit(FALSE);

$mysqli->query("UPDATE `table` SET `col` = 2");
$mysqli->query("UPDATE `table1` SET `col1` = 3");

$mysqli->commit(); // End transaction

この例では、2 つのクエリ ステートメントが同じトランザクション内で実行されます。ただし、トランザクションがコミットされるまで、データベースに変更は適用されません。 $mysqli->commit(); の前にエラーが発生した場合。が呼び出されると、$mysqli->rollback(); を呼び出すことで変更をロールバックできます。

以上がPHP の mysqli 拡張機能を使用して MySQL データベース トランザクションを管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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