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

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

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

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

    // 啟動(dòng)事務(wù)
    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);
        // 提交事務(wù)
        Db::commit();
        return $this->success();
    } catch (\Exception $e) {
        // 回滾事務(wù)
        Db::rollback();
        return $this->error($e->getMessage());
    }
    return $this->error("錯(cuò)誤");

    注意引入Db類

    use think\facade\Db;

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

    標(biāo)簽: thinkphp
    最后修改:2025-03-23 19:22:45

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

    主站蜘蛛池模板: 祥云县| 辽阳市| 静宁县| 牙克石市| 兖州市| 六枝特区| 昆山市| 甘泉县| 册亨县| 湖北省| 增城市| 孟连| 桃源县| 皋兰县| 娄烦县| 天长市| 吉隆县| 滨海县| 凌海市| 大姚县| 茌平县| 霍林郭勒市| 银川市| 上高县| 额尔古纳市| 鸡西市| 英吉沙县| 图木舒克市| 台中县| 阳东县| 陵水| 西华县| 电白县| 勃利县| 双流县| 宝兴县| 灵寿县| 贵港市| 宝山区| 朝阳区| 忻城县|