代码之家  ›  专栏  ›  技术社区  ›  Udders

mysqli_begin_transaction正确用法

  •  0
  • Udders  · 技术社区  · 6 年前

    我想在我的PHP中使用一些事务性mysql,我已经看过了PHP文档,我需要使用一些函数,

    mysqli_begin_transaction
    mysqli_rollback
    mysqli_commit
    

    mysqli_begin_transaction($db_link, MYSQLI_TRANS_START_READ_WRITE);  
    $sql = "SELECT * FROM table";  
    $result = mysqli_query($sql);  
    if(!$result){
        $rollback = true;  
    }
    $sql = "SELECT * FROM another";
    $result = mysqli_query($sql);  
    if(!$result){
        $rollback = true;
    }
    $sql = "DELETE FROM table_name WHERE condition;"
    mysqli_query($sql);
    if(mysqli_affected_rows($db_link) < 0){
        $rollback = true;
    }
    if($rollback){
        mysqli_rollback($db_link)
    } else {
        mysqli_commit($db_link)
    }
    

    这是非常粗糙的伪代码,但我的问题是,事务函数都根据php文档返回值,所以我应该将它们包装在条件语句中,如果它们不返回true,则抛出类似的异常。

    0 回复  |  直到 6 年前