溫馨提示×

PHP事務(wù)處理異常如何捕獲

PHP
小樊
81
2024-11-06 12:40:51
欄目: 編程語言

在 PHP 中,要捕獲事務(wù)處理過程中的異常,可以使用 trycatch 語句塊。下面是一個簡單的示例:

<?php
// 連接數(shù)據(jù)庫
$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);
}

// 開始事務(wù)處理
$conn->begin_transaction();

try {
    // 執(zhí)行 SQL 語句
    $sql1 = "INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')";
    $sql2 = "UPDATE table2 SET column1 = 'value3' WHERE column2 = 'value4'";

    if (!$conn->query($sql1) || !$conn->query($sql2)) {
        // 如果有錯誤發(fā)生,拋出異常
        throw new Exception("事務(wù)處理失敗: " . $conn->error);
    }

    // 提交事務(wù)處理
    $conn->commit();
    echo "事務(wù)處理成功";
} catch (Exception $e) {
    // 如果捕獲到異常,回滾事務(wù)處理
    $conn->rollback();
    echo "事務(wù)處理失敗: " . $e->getMessage();
} finally {
    // 關(guān)閉數(shù)據(jù)庫連接
    $conn->close();
}
?>

在這個示例中,我們首先連接到數(shù)據(jù)庫,然后開始一個事務(wù)處理。在 try 語句塊中,我們執(zhí)行兩個 SQL 語句。如果其中一個語句執(zhí)行失敗,我們拋出一個異常。在 catch 語句塊中,我們捕獲異常并回滾事務(wù)處理。無論事務(wù)處理成功還是失敗,最后我們都會關(guān)閉數(shù)據(jù)庫連接。

0