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

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

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

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

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

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

删除方法:

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

调用事务删除

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

getChildId方法

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

Tags: thinkPHP5 0事务处理

分享到: