當前位置: 首頁> 最新文章列表> PHP 事務詳解:原理、ACID 特性及使用方法

PHP 事務詳解:原理、ACID 特性及使用方法

M66 2025-10-25

PHP 中的事務概述

事務是數據庫中的原子操作單元,要么全部成功,要么全部回滾。 PHP 支持事務操作,可以保證數據庫操作的安全性和一致性。

什麼是事務?

事務是一個完整的操作單元,其中的操作要么全部執行成功,要么全部失敗回滾,從而保證數據的完整性。

PHP 中的ACID 事務

PHP 支持ACID 事務,包括:

  • 原子性(Atomicity):事務中的所有操作要么全部成功,要么全部回滾。
  • 一致性(Consistency):事務完成後,數據庫狀態保持一致。
  • 隔離性(Isolation):事務之間互不干擾。
  • 持久性(Durability):事務提交後,操作結果永久保存。

開始事務

使用mysqli_begin_transaction()函數可以啟動一個事務:

<?php
$conn = new mysqli("host", "username", "password", "database");
$conn-> begin_transaction();
?>

提交事務

當事務中的所有操作完成後,使用mysqli_commit()提交事務:

<?php
$conn-> commit();
?>

回滾事務

如果事務中的某個操作失敗,可以使用mysqli_rollback()回滾事務:

<?php
$conn-> rollback();
?>

事務示例

下面示例演示如何在PHP 中使用事務進行操作:

<?php
$conn = new mysqli("host", "username", "password", "database");

$conn-> begin_transaction();

$sql = "UPDATE users SET balance = balance + 100 WHERE id = 1";
$conn->query($sql);

$sql = "UPDATE accounts SET balance = balance - 100 WHERE id = 2";
$conn->query($sql);

$conn->commit();
?>

在該示例中,如果第二條更新語句執行失敗,事務將回滾,兩個操作都不會應用到數據庫,從而保證數據的完整性和一致性。