簡體   English   中英

mysqli_rollback($ conn)不起作用

[英]mysqli_rollback($conn) Not Woking

我正在嘗試使用mysql數據庫(InnoDB)在php中測試事務,但是回滾不起作用...

這是我的代碼

<?php 
    $servername = "localhost";
    $username = "root";
    $password = "";
    $database = "test";

    $conn = mysqli_connect($servername, $username, $password, $database);

    mysqli_autocommit($conn, FALSE);    

    mysqli_query($conn,"update person set Balance = 300 where Name = 'Jay'");
    if ($conn->affected_rows > 0) {
        mysqli_commit($conn);
        echo "First Commited <br>";
        mysqli_query($conn,"update person set Balance = 3000 where Name = 'Rv'");       
        if($conn->affected_rows > 0) {
            mysqli_commit($conn);
            echo "Second Commited <br>";
        }else {
            mysqli_rollback($conn);
            echo "First rollback <br>";
        }       
    }   
    mysqli_close($conn);
?>

有什么問題嗎? (我也在php中嘗試了面向對象的樣式,請從這里參考)

顯示創建表人的查詢結果

您在第二次更新完成之前提交了第一次更新,所以...

mysqli_autocommit($conn, FALSE);    

    mysqli_query($conn,"update person set Balance = 300 where Name = 'Jay'");
    if ($conn->affected_rows > 0) {
        // mysqli_commit($conn); // Remove this line
        // echo "First Commited <br>";
        mysqli_query($conn,"update person set Balance = 3000 where Name = 'Rv'");       
        if($conn->affected_rows > 0) {
            mysqli_commit($conn);
            echo "Second Commited <br>";
        }else {
            mysqli_rollback($conn);
            echo "First rollback <br>";
        }       
    }   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM