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

本文介绍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 //调用事务删除 1010 $del=$cate->shiwu($id); 1111 if($del == true){ 1212 $this->success('删除成功/!'); 1313 }else{ 1414 $this->error('删除失败/!'); 1515 } 1616 }

调用事务删除:

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 // 提交事务 1010 Db::commit(); 1111 return true; 1212 } catch (\Exception $e) { 1313 // 回滚事务 1414 Db::rollback(); 1515 return false; 1616 } 1717 }

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) { 1010 if($id == $v['pid']){ 1111 $arr[] = $v['id']; 1212 $this->_getChildId($cateres,$v['id']); 1313 } 1414 } 1515 return $arr; 1616 }

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

​一篇文章总结一下Python库中关于时间的常见操作

前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''