ホームページ >バックエンド開発 >PHPチュートリアル >PHP の mysqli 拡張機能を使用して MySQL データベース トランザクションを管理するにはどうすればよいですか?
トランザクションはデータベース管理の重要な側面であり、一連のデータベース操作が確実に行われるようにします。完全に実行されるか、エラーが発生した場合はロールバックされます。 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 サイトの他の関連記事を参照してください。