PHP數據庫事務是一組操作,這些操作被看作是一個單一的、不可分割的工作單元。事務用于確保數據庫操作在一系列操作中保持數據的一致性和完整性。在PHP中,事務主要通過以下幾個關鍵點幫助開發者:
在PHP中,可以使用PDO(PHP Data Objects)或MySQLi擴展來處理數據庫事務。以下是使用PDO處理事務的一個簡單示例:
try {
// 創建數據庫連接
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 開始事務
$pdo->beginTransaction();
// 執行數據庫操作
$stmt1 = $pdo->prepare("INSERT INTO table1 (column1, column2) VALUES (?, ?)");
$stmt1->execute(['value1', 'value2']);
$stmt2 = $pdo->prepare("UPDATE table2 SET column1 = ? WHERE column2 = ?");
$stmt2->execute(['new_value', 'condition']);
// 提交事務
$pdo->commit();
} catch (PDOException $e) {
// 發生錯誤,回滾事務
if ($pdo->inTransaction()) {
$pdo->rollBack();
}
echo "Error: " . $e->getMessage();
}
在這個示例中,我們首先創建了一個數據庫連接,并設置了錯誤模式為異常。然后,我們開始了一個事務,并執行了兩個數據庫操作。如果這兩個操作都成功執行,我們就提交事務;否則,我們捕獲異常并回滾事務,以確保數據的完整性。