ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi でトランザクションを開始および終了するにはどうすればよいですか?
MySQL を使用する場合、トランザクションがどのように動作するかを理解することが不可欠です。トランザクションは、複数のクエリをグループ化し、確実にアトミックに実行されるようにする方法として機能します。つまり、すべてのクエリが成功するか、まったく成功しないかのどちらかです。
MySQLi では、トランザクションは非アクティブ化することで開始されます。 autocommit(FALSE) ステートメントを使用した自動コミット モード。オートコミットは MySQL のデフォルトの動作であり、すべてのクエリが独立して即時に実行されることを意味します。自動コミットを無効にすると、トランザクション制御が有効になり、複数のクエリをグループ化して 1 つの単位として実行できるようになります。
トランザクション内で目的のクエリをグループ化した後、明示的に次の操作を行う必要があります。それを終わらせてください。トランザクションを終了するには 2 つの方法があります:
次の PHP コード スニペットを考えてみましょう:
<?php // Database connection $mysqli = new mysqli('localhost', 'username', 'password', 'database'); // Start transaction $mysqli->autocommit(FALSE); // Queries within the transaction $mysqli->query('UPDATE `table` SET `column` = 1'); $mysqli->query('UPDATE `table1` SET `column1` = 2'); // Commit or rollback if ($allQueriesExecutedSuccessfully) { $mysqli->commit(); } else { $mysqli->rollback(); } ?>
この例では、autocommit(FALSE) を使用して自動コミット モードを無効にし、トランザクションを開始します。トランザクション内で複数のクエリが実行されます。実行ステータスに基づいて、トランザクションはコミットまたはロールバックされます。
以上がMySQLi でトランザクションを開始および終了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。