mysqli_begin_transaction正确用法

时间:2018-11-15 14:23:35

标签: php mysql mysqli transactions

我想在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 个答案:

没有答案