PHP MySQL トランザクションの例
PHP と MySQL のトランザクションを使用すると、一連のクエリを単一のアトミックな作業単位としてグループ化できます。これは、クエリの 1 つが失敗した場合、トランザクションによって行われたすべての変更がロールバックされることを意味します。
トランザクションの使用方法
PHP でトランザクションを使用するには、 MySQL の場合、次の操作を行う必要があります。
例
PHP と MySQL でトランザクションを使用する方法の簡単な例を次に示します。
mysql_query("SET AUTOCOMMIT=0"); mysql_query("START TRANSACTION"); $a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')"); $a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')"); if ($a1 and $a2) { mysql_query("COMMIT"); } else { mysql_query("ROLLBACK"); }
この例では、$a1 と $a2 の両方が成功した場合にのみ COMMIT ステートメントが実行されます。いずれかのクエリが失敗した場合、ROLLBACK ステートメントが実行されます。
PDO でのトランザクションの使用
PDO クラスは、より現代的でオブジェクト指向の操作方法を提供します。 MySQL トランザクション。 PDO でトランザクションを使用するには、次の操作を行う必要があります。
例
PDO でトランザクションを使用する方法の例を次に示します:
try { $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->beginTransaction(); $pdo->exec("INSERT INTO rarara (l_id) VALUES('1')"); $pdo->exec("INSERT INTO rarara (l_id) VALUES('2')"); $pdo->commit(); } catch (\PDOException $e) { $pdo->rollback(); throw $e; }
この例では、両方のクエリが成功した場合にのみ commit() メソッドが呼び出されます。いずれかのクエリが失敗すると、rollback() メソッドが呼び出され、例外がスローされます。
以上がPHP で MySQL トランザクションを効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。