当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkPHP5.0框架事务处理操作简单示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-28 14:41:00 浏览: 评论:0 

这篇文章主要介绍了thinkPHP5.0框架事务处理操作,结合实例形式分析了thinkPHP5针对删除操作的事务处理相关操作技巧,需要的朋友可以参考下。

本文实例讲述了thinkPHP5.0框架事务处理操作,分享给大家供大家参考,具体如下:

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

删除方法:

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

调用事务删除

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

getChildId方法

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

Tags: thinkPHP5 0事务处理

分享到: