Thinkphp5 中使用 事务和foreach时出现
- Db::startTrans();
- try{
- foreach ($item_arr as $val){
-
- }
- Db::commit();
- $this->success('ok',$ids);
- }catch (\Exception $e) {
- Db::rollback();
-
- $this->error('数据存储错误,请重试');
- }
复制代码
会出现抛出异常,但是实际上数据库已经事务处理完成了。
解决办法:
- Db::startTrans();
- try{
- foreach ($item_arr as $val){
-
- }
- Db::commit();
- $this->success('ok',$ids);
- }catch (\think\Exception\DbException $e) {
- Db::rollback();
-
- $this->error('数据存储错误,请重试');
- }
复制代码
|