在PHP中,使用MySQLi的事務處理方法可以確保一組操作要么全部成功執行,要么全部失敗回滾。以下是一個使用MySQLi事務處理方法的示例:
<?php
// 連接數據庫
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 開始事務
$conn->begin_transaction();
try {
// 插入第一條數據
$sql1 = "INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')";
if (!$conn->query($sql1)) {
throw new Exception("插入數據1失敗: " . $conn->error);
}
// 插入第二條數據
$sql2 = "INSERT INTO table2 (column1, column2) VALUES ('value3', 'value4')";
if (!$conn->query($sql2)) {
throw new Exception("插入數據2失敗: " . $conn->error);
}
// 如果所有操作成功,提交事務
$conn->commit();
} catch (Exception $e) {
// 如果出現異常,回滾事務
$conn->rollback();
echo "Error: " . $e->getMessage();
}
// 關閉連接
$conn->close();
?>
在這個示例中,我們首先連接到數據庫,然后開始一個事務。接下來,我們嘗試插入兩條數據。如果任何一條數據插入失敗,我們將拋出一個異常并回滾事務。如果所有操作都成功,我們將提交事務。最后,我們關閉數據庫連接。