tp5事务提交操作有关try-catch结构中数据未回滚的问题

最近做毕设项目时发现,在利用try-catch结构语句进行数据库的事务提交时,出现了这么一个问题:一次删除多张表中的关联内容,从执行结果中查看也确实是已经被删除掉,按理说代码到此就应该结束返回,但程序总是会继续执行到catch语句块中,令人很费解,catch语句块中的打印输出错误信息为空,同时数据回滚操作也并没有执行。。。
  
  经过思考,首先所有执行删除操作的提交代码都是正确的,因为数据确实已被删除掉,那会不会是Db::commit();事务提交操作后的那一句代码有问题呢?一查还果然是这句代码 $this->success(‘删除成功!’); 有问题,数据删除操作成功之后本应返回给我删除成功的信息,没有正确返回还给我整到了catch语句中。最后我改用echo语句返回删除成功的信息。
  
  所以,这儿做一个总结少走弯路,如果你需要返回例如“删除成功”的信息,并使用 $this->success(); 语句去执行,那就要在该方法里填写第二个参数,第二个参数表示跳转地址。
success方法默认跳转地址是 $_SERVER[“HTTP_REFERER”],error方法的默认跳转地址是javascript:history.back(-1);同时两个方法还有第三个参数表示跳转时间,默认的等待时间success方法是1秒,error方法是3秒

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值