在PHP中,使用MySQLi的事務(wù)處理方法可以確保一組操作要么全部成功執(zhí)行,要么全部失敗回滾。以下是一個(gè)使用MySQLi事務(wù)處理方法的示例:
<?php
// 連接數(shù)據(jù)庫(kù)
$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);
}
// 開(kāi)始事務(wù)
$conn->begin_transaction();
try {
// 插入第一條數(shù)據(jù)
$sql1 = "INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')";
if (!$conn->query($sql1)) {
throw new Exception("插入數(shù)據(jù)1失敗: " . $conn->error);
}
// 插入第二條數(shù)據(jù)
$sql2 = "INSERT INTO table2 (column1, column2) VALUES ('value3', 'value4')";
if (!$conn->query($sql2)) {
throw new Exception("插入數(shù)據(jù)2失敗: " . $conn->error);
}
// 如果所有操作成功,提交事務(wù)
$conn->commit();
} catch (Exception $e) {
// 如果出現(xiàn)異常,回滾事務(wù)
$conn->rollback();
echo "Error: " . $e->getMessage();
}
// 關(guān)閉連接
$conn->close();
?>
在這個(gè)示例中,我們首先連接到數(shù)據(jù)庫(kù),然后開(kāi)始一個(gè)事務(wù)。接下來(lái),我們嘗試插入兩條數(shù)據(jù)。如果任何一條數(shù)據(jù)插入失敗,我們將拋出一個(gè)異常并回滾事務(wù)。如果所有操作都成功,我們將提交事務(wù)。最后,我們關(guān)閉數(shù)據(jù)庫(kù)連接。