首頁 >後端開發 >php教程 >如何使用 PHP 的 mysqli 擴充管理 MySQL 資料庫事務?

如何使用 PHP 的 mysqli 擴充管理 MySQL 資料庫事務?

Susan Sarandon
Susan Sarandon原創
2024-12-05 11:51:13640瀏覽

How to Manage MySQL Database Transactions with PHP's mysqli Extension?

使用事務查詢MySQL 資料庫

在mysqli 中使用事務

事務是資料庫管理的一個重要方面,它確保一系列資料庫操作的順序要么完全執行,要么在發生任何錯誤時回滾。使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn