陈广安个人网站
会写代码的咸鱼
陈广安个人网站阿里云盘资源
陈广安个人网站网盘资源搜索
“ 梦想还是要有的,万一实现了呢!”
— 马云

ThinkPHP 中用于开启数据库事务的方法Db::startTrans()

创建时间:2025-04-01

Db::startTrans() 是 ThinkPHP 中用于开启数据库事务的方法。


事务的主要作用是确保一组数据库操作要么全部成功执行,要么全部不执行,保证数据的一致性。


典型使用方式:

try {
    Db::startTrans();    // 开启事务
    
    // 执行多个数据库操作
    Db::table('table1')->update([...]);
    Db::table('table2')->insert([...]);
    
    Db::commit();        // 提交事务
} catch (\Exception $e) {
    Db::rollback();      // 回滚事务
}


举个例子:

假设你要同时更新用户余额和添加交易记录,这两个操作必须同时成功或同时失败,以保证数据一致性:


- 如果更新余额成功但添加记录失败,通过 rollback() 回滚,撤销余额更新

- 只有两个操作都成功,才通过 commit() 提交事务

- 这样可以避免出现余额已减但没有交易记录,或有交易记录但余额未减的情况