首頁 > 後端開發 > php教程 > 如何在 MySQLi 中開始和結束事務?

如何在 MySQLi 中開始和結束事務?

DDD
發布: 2024-12-06 21:13:12
原創
914 人瀏覽過

How Do I Start and End Transactions in MySQLi?

在 MySQLi 中開始和結束事務

使用 MySQL 時,了解事務如何運作至關重要。事務是一種將多個查詢分組並確保它們以原子方式執行的方式,這意味著所有查詢要么全部成功,要么全部都不成功。

啟動交易

在 MySQLi 中,交易是透過停用來啟動的使用 autocommit(FALSE) 語句的自動提交模式。自動提交是MySQL的預設行為,這意味著每個查詢都是獨立且立即執行的。透過停用自動提交,您可以啟用交易控制,從而允許您對多個查詢進行分組並將它們作為一個單元執行。

結束事務

在事務中對所需的查詢進行分組後,您必須明確結束它。有兩種方式結束事務:

  1. 提交:如果事務中的所有查詢都成功執行且沒有錯誤,則可以使用 commit() 方法完成事務。這會將交易期間所做的所有變更永久保存到資料庫中。
  2. 回滾:如果交易中的任何查詢失敗,您可以使用 rollback() 方法取消交易。這將丟棄事務期間所做的所有更改,將資料庫恢復到事務開始之前的狀態。

範例

考慮以下 PHP 程式碼片段:

<?php
// Database connection
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

// Start transaction
$mysqli->autocommit(FALSE);

// Queries within the transaction
$mysqli->query('UPDATE `table` SET `column` = 1');
$mysqli->query('UPDATE `table1` SET `column1` = 2');

// Commit or rollback
if ($allQueriesExecutedSuccessfully) {
  $mysqli->commit();
} else {
  $mysqli->rollback();
}
?>
登入後複製

在此範例中,使用 autocommit(FALSE) 停用自動提交模式,啟動交易。事務內執行多個查詢。根據執行狀態,事務要麼提交,要麼回滾。

以上是如何在 MySQLi 中開始和結束事務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板