SQL server错误:不允许启动新事务,因为有其他线程正在该会话中运行
因为项目需要用到sql server数据库 刚上手使用事务的时候就遇到这个错误 网上好像找不到相关的资料 有朋友知道怎么排查问题吗?
用的是tp5+sql server
Db::startTrans();// 启动事务
try{
if($id == session('uid')){
return ['code'=>100,'data' => '','msg'=>'不可禁用自己','type'=>'no'];
}else {
$this->where ('id' , $id)->setField (['status' => $num]);
Db::commit();// 提交事务
return ['code' => 200, 'data' => '', 'msg' => '已'.$msg];
}
}catch( \Exception $e) {
Db::rollback();//回滚事务
return ['code' => 100, 'data' => '', 'msg' => $msg . '失败'];
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
sql server
不熟悉 但是代码上 给个建议。。尽量别if else 用拦截法判断 再事务开始就可以做过滤 而且没涉及到db操作
代码会可读性和编写性好点
楼主,我也遇到了同样的问题,但是我也屏蔽掉了开启事务的可能写法,但是还是报错,我用的是crmeb封装的tp6框架!正常的增删改查是可以的~但是无法使用事务功能!
我也碰到这问题了,楼主怎么解决的啊!麻烦告知一声哈,谢谢了!