事務是數據庫中的原子操作單元,要么全部成功,要么全部回滾。 PHP 支持事務操作,可以保證數據庫操作的安全性和一致性。
事務是一個完整的操作單元,其中的操作要么全部執行成功,要么全部失敗回滾,從而保證數據的完整性。
PHP 支持ACID 事務,包括:
使用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();
?>在該示例中,如果第二條更新語句執行失敗,事務將回滾,兩個操作都不會應用到數據庫,從而保證數據的完整性和一致性。