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 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP的中问验证码
Nov 25 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
php无限遍历目录示例
Feb 21 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
关于php开启错误提示的总结
2019/09/24 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
jquery实现图片预加载
2015/12/25 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
js编写简易的计算器
2020/07/29 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
Python的Lambda函数用法详解
2019/09/03 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
给实习单位的感谢信
2014/02/01 职场文书
安全标准化汇报材料
2014/02/03 职场文书
同乡会致辞
2015/07/30 职场文书