Laravel 10事务报错There is no active transaction
1. 运行环境
1). 当前使用的 Laravel 版本?
10.1.5
2). 当前使用的 php/php-fpm 版本?
PHP 版本:8.2.1
php-fpm 版本:
3). 当前系统
Windows 10
4). 业务环境
开发环境
5). 相关软件版本
2. 问题描述?
laravel5的一个旧项目想要升级到最新laravel10,在事务提交的commit的位置报错:“There is no active transaction”
DB::beginTransaction();
try {
$ins = ModTbModel::Create($modtb);//插入数据表
$id=$ins->tb_id;
$this->createModTable($createname,'1');//
ModTbModel::addModTbSysFields($id,$tb_name);//
DB::commit();//此处报错
return back()->with('msg','添加成功');
} catch (Exception $e) {
DB::rollback();
return back()->with('msg','添加失败');
throw $e;
}
查看了try里的sql内容发现createModTable()方法里也有一个事务提交,认为可能是里面commit过了引起的。就去掉了里面的事务处理。重新测试发现无效,看来应该不是和这个有关。对于这个问题该如何处理呢?看起来数据库的操作都是成功执行了的,可以直接抑制错误的显示吗?
3. 您期望得到的结果?
错误提示消失
4. 您实际得到的结果?
There is no active transaction
推荐文章: