<button id="g80sy"></button>
  • <abbr id="g80sy"></abbr>
  • <button id="g80sy"></button>
    <rt id="g80sy"><delect id="g80sy"></delect></rt>
  • thinkphp6 tp6如何使用事務

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

    tp6在操作數據庫時,如果出現錯誤會直接拋出異常,單表操作時可以隨便搞了。在多表操作時,如果后面的表出現異常會導致數據混亂,慘不忍睹。怎么解決呢?

    當然是啟用事務日志,在異常時回滾事務,注意MySQL 的 MyISAM 不支持事務處理,需要使用 InnoDB 引擎。

    // 啟動事務
    Db::startTrans();
    try {
        //表一保存
        $user->money = $user->money-$proem['money'];
        $user->save();
        // 表二保存
        $where['user_bank_id'] = $proem['bankid'];
        $where['money'] = $proem['money'];
        $where['user_id'] = $this->uid;
        $where['create_time'] = time();
        (new UserRawal)->save($where);
        // 提交事務
        Db::commit();
        return $this->success();
    } catch (\Exception $e) {
        // 回滾事務
        Db::rollback();
        return $this->error($e->getMessage());
    }
    return $this->error("錯誤");

    注意引入Db類

    use think\facade\Db;

    使用以上方法就可以避免數據混亂啦,點擊查看更多tinkphp技巧。

    標簽: thinkphp
    最后修改:2025-05-30 00:28:41

    非特殊說明,本博所有文章均為博主原創。

    主站蜘蛛池模板: 诏安县| 德令哈市| 铅山县| 荔浦县| 方城县| 双鸭山市| 常德市| 比如县| 淮安市| 当阳市| 铁力市| 石台县| 淳安县| 陆河县| 文水县| 昌平区| 文登市| 历史| 巢湖市| 宾川县| 瑞丽市| 尚义县| 霍城县| 和林格尔县| 嘉义县| 永川市| 上林县| 尖扎县| 罗山县| 屏东市| 巴彦县| 梧州市| 洞口县| 化州市| 鹤庆县| 宜宾县| 九龙县| 诸城市| 新沂市| 牙克石市| 龙胜|