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


Posted in PHP onSeptember 07, 2018

本文实例讲述了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;
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
PHP+javascript模拟Matrix画面
Oct 09 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
PHP+swoole实现简单多人在线聊天群发
Jan 19 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 #PHP
php curl优化下载微信头像的方法总结
Sep 07 #PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 #PHP
PHP日志LOG类定义与用法示例
Sep 06 #PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 #PHP
php JWT在web端中的使用方法教程
Sep 06 #PHP
php进程daemon化的正确实现方法
Sep 06 #PHP
You might like
php Memcache 中实现消息队列
2009/11/24 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
通过shell+python实现企业微信预警
2019/03/07 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
类如何去实现接口
2013/12/19 面试题
介绍一下MD5加密算法
2016/11/12 面试题
敏捷开发的主要原则都有哪些
2015/04/26 面试题
眼镜促销方案
2014/03/15 职场文书
社区健康教育实施方案
2014/03/18 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
《藏戏》教学反思
2016/02/23 职场文书
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android