thinkPHP框架中执行事务的方法示例


Posted in PHP onMay 31, 2018

本文实例讲述了thinkPHP框架中执行事务的方法。分享给大家供大家参考,具体如下:

function tran(){
  //定义事务成功失败的标志
  $mark = true;
  //1. 实例化模型
  $model = D('student');
  //2. 开启事务处理
  $model->startTrans();
  //3. ls减少2000
  $sql = "update student set money=money-2000 where uname='ls'";
  $result = $model->execute($sql);
  //判断sql执行是否成功,如果失败,则将$mark改为false
  if(!$result){
    $mark = false;
  }
  //4. zs增加2000
  $sql = "update student set money=money+2000 where uname='zs'";
  $result = $user->execute($sql);
  //判断sql执行是否成功,如果失败,则将$mark改为false
  if(!$result){
    $mark = false;
  }
  $mark = false; //暂时强制改为false,测试回滚效果
  //5. 提交事务
  //判断$mark的值,为ture则提交,为false则回滚
  if($mark){
    $user->commit();
  } else {
    $user->rollback();
  }
}

TP中事务相关的方法: 都是在Model.class.php中定义好的

startTran(): 开启事务处理

Commit(): 提交事务

Rollback(): 回滚

当需要执行的事务是在不同的sql表中时,只需要执行两个sql的model定义的不同即可

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

PHP 相关文章推荐
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
PHP实现获取客户端IP并获取IP信息
Mar 17 PHP
php实现的通用图片处理类
Mar 24 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
PHP以json或xml格式返回请求数据的方法
May 31 #PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 #PHP
php支付宝系列之电脑网站支付
May 30 #PHP
Laravel框架使用Redis的方法详解
May 30 #PHP
php实现微信支付之退款功能
May 30 #PHP
分享5个非常有用的Laravel Blade指令
May 30 #PHP
php实现微信支付之企业付款
May 30 #PHP
You might like
apache配置虚拟主机的方法详解
2013/06/17 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
Python中关于使用模块的基础知识
2015/05/24 Python
python如何爬取个性签名
2018/06/19 Python
学习python分支结构
2019/05/17 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python3 简单实现组合设计模式
2020/07/02 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
C语言笔试题
2014/09/04 面试题
旅游管理专业个人求职信范文
2013/12/24 职场文书
竞职演讲稿范文
2014/01/11 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
投标担保书范文
2014/04/02 职场文书
业务员自荐信范文
2014/04/20 职场文书
学习之星事迹材料
2014/05/17 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android