方式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 回答

叮當(dāng)貓咪
TA貢獻1776條經(jīng)驗 獲得超12個贊
我覺得方法1很好,很簡潔。try catch可以捕獲到很多的錯誤,像這個sql語句執(zhí)行錯誤肯定是可以的。第二種方法略有瑕疵,在判斷是否成功的情況下應(yīng)該用!==false,不然在修改0條記錄的情況下你會誤判為失敗而回滾。
- 5 回答
- 0 關(guān)注
- 2006 瀏覽
添加回答
舉報
0/150
提交
取消