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秒

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章