经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
ThinkPHP5.0框架事务处理操作简单示例
来源:cnblogs  作者:gedage  时间:2018/11/14 10:03:27  对本文有异议

本文介绍ThinkPHP5.0框架事务处理操作,结合实例形式分析了ThinkPHP5针对删除操作的事务处理相关操作技巧,可以加深对ThinkPHP源码的理解,需要的朋友可以参考下

事务的调用在mysql里需要注意下数据库引擎,处理前先查看一下

删除方法:

  1. 1 public function del()
  2. 2 {
  3. 3 $cate = new CateModel;
  4. 4 $id=input('id');
  5. 5 $selectID=$cate->find($id);
  6. 6 if($id == ''){
  7. 7 $this->error('请不要恶意测试');
  8. 8 }
  9. 9 //调用事务删除
  10. 10 $del=$cate->shiwu($id);
  11. 11 if($del == true){
  12. 12 $this->success('删除成功/!');
  13. 13 }else{
  14. 14 $this->error('删除失败/!');
  15. 15 }
  16. 16 }

调用事务删除:

  1. 1 //事务处理删除
  2. 2 public function shiwu($id)
  3. 3 {
  4. 4 $cates=Cate::getChildId($id);
  5. 5 Db::startTrans($id,$cates); //$cates是所有子分类的一维数组
  6. 6 try{
  7. 7 Db::table('tp_cate')->where('id','in',$cates)->delete(); //删除所有子分类
  8. 8 Db::table('tp_cate')->where('id',$id)->delete(); //删除自身
  9. 9 // 提交事务
  10. 10 Db::commit();
  11. 11 return true;
  12. 12 } catch (\Exception $e) {
  13. 13 // 回滚事务
  14. 14 Db::rollback();
  15. 15 return false;
  16. 16 }
  17. 17 }

getChildId方法:

  1. 1 public function getChildId($id)
  2. 2 {
  3. 3 $cateres=Cate::select();
  4. 4 return $this->_getChildId($cateres,$id);
  5. 5 }
  6. 6 public function _getChildId($cateres,$id)
  7. 7 {
  8. 8 static $arr = array();
  9. 9 foreach ($cateres as $k => $v) {
  10. 10 if($id == $v['pid']){
  11. 11 $arr[] = $v['id'];
  12. 12 $this->_getChildId($cateres,$v['id']);
  13. 13 }
  14. 14 }
  15. 15 return $arr;
  16. 16 }

完毕!不知道大家学会了没有?

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号