日日摸夜夜添夜夜添aa,亚洲一区二区在线视频,国产精品入口在线看麻豆,久久久久久久99精品免费观看

thinkphp6 tp6如何使用事務(wù)

程序猿 2021-03-10 15:51:15 2951瀏覽 加載中

tp6在操作數(shù)據(jù)庫時(shí),如果出現(xiàn)錯(cuò)誤會(huì)直接拋出異常,單表操作時(shí)可以隨便搞了。在多表操作時(shí),如果后面的表出現(xiàn)異常會(huì)導(dǎo)致數(shù)據(jù)混亂,慘不忍睹。怎么解決呢?

當(dāng)然是啟用事務(wù)日志,在異常時(shí)回滾事務(wù),注意MySQL 的 MyISAM 不支持事務(wù)處理,需要使用 InnoDB 引擎。

codelayui.code

  1. // 啟動(dòng)事務(wù)
  2. Db::startTrans();
  3. try {
  4.     //表一保存
  5.     $user->money = $user->money-$proem['money'];
  6.     $user->save();
  7.     // 表二保存
  8.     $where['user_bank_id'] = $proem['bankid'];
  9.     $where['money'] = $proem['money'];
  10.     $where['user_id'] = $this->uid;
  11.     $where['create_time'] = time();
  12.     (new UserRawal)->save($where);
  13.     // 提交事務(wù)
  14.     Db::commit();
  15.     return $this->success();
  16. } catch (\Exception $e) {
  17.     // 回滾事務(wù)
  18.     Db::rollback();
  19.     return $this->error($e->getMessage());
  20. }
  21. return $this->error("錯(cuò)誤");

注意引入Db類

codelayui.code

  1. use think\facade\Db;

使用以上方法就可以避免數(shù)據(jù)混亂啦,點(diǎn)擊查看更多tinkphp技巧。

標(biāo)簽: thinkphp
最后修改:2025-05-12 16:33:15

非特殊說明,本博所有文章均為博主原創(chuàng)。