方式1
Db::startTrans();
try{
Db::name('table1')->update(1);
Db::name('table2')->update(2);
Db::commit();
}catch(){
Db::rollback();
}
方式2
$status = false;
Db::startTrans();
try{
$res = Db::name('table1')->update(1);
$res1 = Db::name('table2')->update(2);
if($res && $res1)
{
$status = true;
Db::commit();
}
}catch(){
Db::rollback();
}
这两种方式用的哪一种更好
我之前一直都是使用第一种,不知道会有什么毛病不?
5 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
我觉得方法1很好,很简洁。try catch可以捕获到很多的错误,像这个sql语句执行错误肯定是可以的。第二种方法略有瑕疵,在判断是否成功的情况下应该用!==false,不然在修改0条记录的情况下你会误判为失败而回滚。
- 5 回答
- 0 关注
- 1957 浏览
添加回答
举报
0/150
提交
取消