第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

thinkphp5 try catch 事務(wù)疑問

thinkphp5 try catch 事務(wù)疑問

PHP
牧羊人nacy 2019-03-06 08:24:25
方式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貢獻1951條經(jīng)驗 獲得超3個贊

沒必要啊,錯誤了自然會到catch里面去啊

查看完整回答
反對 回復(fù) 2019-03-18
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

看業(yè)務(wù)場景,如果后續(xù)不需要回滾結(jié)果,使用第一個就行。

查看完整回答
反對 回復(fù) 2019-03-18
?
叮當(dāng)貓咪

TA貢獻1776條經(jīng)驗 獲得超12個贊

我覺得方法1很好,很簡潔。try catch可以捕獲到很多的錯誤,像這個sql語句執(zhí)行錯誤肯定是可以的。第二種方法略有瑕疵,在判斷是否成功的情況下應(yīng)該用!==false,不然在修改0條記錄的情況下你會誤判為失敗而回滾。

查看完整回答
反對 回復(fù) 2019-03-18
?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

方法一好一些,tra..catch..機制可以捕捉到你sql的錯誤了,沒有必要再做額外的判斷。
而且這樣寫簡潔明了

查看完整回答
反對 回復(fù) 2019-03-18
  • 5 回答
  • 0 關(guān)注
  • 2006 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號