这篇文章将为大家详细讲解有关怎么在thinkPHP5.0框架中对事务进行处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
事务的调用在mysql里需要注意下数据库引擎,处理前先查看一下
删除方法:
publicfunctiondel()
{
$cate=newCateModel;
$id=input('id');
$selectID=$cate->find($id);
if($id==''){
$this->error('请不要恶意测试');
}
//调用事务删除
$del=$cate->shiwu($id);
if($del==true){
$this->success('删除成功/!');
}else{
$this->error('删除失败/!');
}
}
调用事务删除
//事务处理删除
publicfunctionshiwu($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();
returntrue;
}catch(\Exception$e){
//回滚事务
Db::rollback();
returnfalse;
}
}
getChildId方法
publicfunctiongetChildId($id)
{
$cateres=Cate::select();
return$this->_getChildId($cateres,$id);
}
publicfunction_getChildId($cateres,$id)
{
static$arr=array();
foreach($cateresas$k=>$v){
if($id==$v['pid']){
$arr[]=$v['id'];
$this->_getChildId($cateres,$v['id']);
}
}
return$arr;
}
关于怎么在thinkPHP5.0框架中对事务进行处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。