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 相关文章推荐
图象函数中的中文显示
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
PHP递归实现层级树状展开
Apr 01 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 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
全文搜索和替换
2006/10/09 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python中文件的读取和写入操作
2018/04/27 Python
python中的常量和变量代码详解
2018/07/25 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Django中FilePathField字段的用法
2020/05/21 Python
Python中Selenium库使用教程详解
2020/07/23 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
StringBuilder和String的区别
2015/05/18 面试题
银行见习期自我鉴定
2014/01/29 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
海飞丝的广告词
2014/03/20 职场文书
青年标兵事迹材料
2014/08/16 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
python 实现的截屏工具
2021/05/08 Python
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python
详解Python中的for循环
2022/04/30 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis