php教程

超轻量级php框架startmvc

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

更新时间:2020-03-29 22:37:55 作者:startmvc
本文实例讲述了thinkPHP5.0框架事务处理操作。分享给大家供大家参考,具体如下:事务的调

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

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

删除方法:


public function del()
{
 $cate = new CateModel;
 $id=input('id');
 $selectID=$cate->find($id);
 if($id == ''){
 $this->error('请不要恶意测试');
 }
 //调用事务删除
 $del=$cate->shiwu($id);
 if($del == true){
 $this->success('删除成功/!');
 }else{
 $this->error('删除失败/!');
 }
}

调用事务删除


//事务处理删除
public function shiwu($id)
{
 $cates=Cate::getChildId($id);
 Db::startTrans($id,$cates); //$cates是所有子分类的一维数组
 try{
 Db::table('tp_cate')->where('id','in',$cates)->delete(); //删除所有子分类
 Db::table('tp_cate')->where('id',$id)->delete(); //删除自身
 // 提交事务
 Db::commit();
 return true;
 } catch (\Exception $e) {
 // 回滚事务
 Db::rollback();
 return false;
 }
}

getChildId方法


public function getChildId($id)
{
 $cateres=Cate::select();
 return $this->_getChildId($cateres,$id);
}
public function _getChildId($cateres,$id)
{
 static $arr = array();
 foreach ($cateres as $k => $v) {
 if($id == $v['pid']){
 $arr[] = $v['id'];
 $this->_getChildId($cateres,$v['id']);
 }
 }
 return $arr;
}

thinkPHP5.0 事务处理