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的控制语句
Oct 09 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
PHP如何将XML转成数组
Apr 04 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
PHP session会话操作技巧小结
Sep 27 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
在laravel中实现事务回滚的方法
Oct 10 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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
php输出1000以内质数(素数)示例
2014/02/16 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python自定义线程类简单示例
2018/03/23 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
python基于http下载视频或音频
2018/06/20 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
python爬取音频下载的示例代码
2020/10/19 Python
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
2014年计算机专业个人自我评价
2014/01/19 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
励志演讲稿800字
2014/08/21 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
单位证明范文
2015/06/18 职场文书
消防安全培训工作总结
2015/10/23 职场文书
禁毒心得体会范文
2016/01/15 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书