PHP MySQL 交易範例
PHP 和 MySQL 中的交易可讓您將一組查詢分組為單一原子工作單元。這意味著如果其中一個查詢失敗,事務所所做的所有更改都會回滾。
如何使用事務
在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中文網其他相關文章!