事務是資料庫管理的一個重要方面,它確保一系列資料庫操作的順序要么完全執行,要么在發生任何錯誤時回滾。使用 MySQL 的 PHP mysqli 擴展,事務透過兩個基本函數處理:
$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
在此範例中,兩個查詢語句在相同交易中執行。但是,在提交事務之前,不會將任何變更套用至資料庫。如果$mysqli->commit();之前發生任何錯誤被呼叫時,可以透過呼叫 $mysqli->rollback();.
來回滾來更改以上是如何使用 PHP 的 mysqli 擴充管理 MySQL 資料庫事務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!