mysqli\u begin\u事务正确用法

gab6jxml  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(209)

我想在我的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文档,所以我应该将它们 Package 在条件语句中,如果它们不返回true,则抛出类似的异常。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题