PHP MySQL事務處理主要包括以下步驟:
mysqli_begin_transaction()
函數(shù)開啟一個新的事務。mysqli_affected_rows()
函數(shù)檢查受影響的行數(shù),以確保操作按預期執(zhí)行。mysqli_commit()
函數(shù)提交事務。這將使所有更改永久生效。mysqli_rollback()
函數(shù)撤銷所有更改。這通常用于處理運行時錯誤或意外情況。以下是一個簡單的PHP MySQL事務處理示例:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 創(chuàng)建連接
$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("Error inserting record 1: " . $conn->error);
}
// 插入第二條記錄
$sql2 = "INSERT INTO Table2 (column1, column2) VALUES ('value3', 'value4')";
if (!$conn->query($sql2)) {
throw new Exception("Error inserting record 2: " . $conn->error);
}
// 提交事務
$conn->commit();
} catch (Exception $e) {
// 發(fā)生錯誤時回滾事務
echo "Error: " . $e->getMessage();
$conn->rollback();
}
$conn->close();
?>
在這個示例中,我們首先創(chuàng)建了一個到MySQL數(shù)據(jù)庫的連接,然后開啟了事務。接下來,我們嘗試插入兩條記錄。如果任何一條記錄插入失敗,我們將捕獲異常并回滾事務。如果所有記錄都成功插入,我們將提交事務。