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开发框架kohana中处理ajax请求的例子
Jul 14 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
PHP安装memcached扩展笔记
May 28 PHP
PHP中Http协议post请求参数
Nov 02 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
JsRender for object语法简介
2014/10/31 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
单链表反转python实现代码示例
2018/02/08 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
"引用"与指针的区别是什么
2016/09/07 面试题
.NET面试问题集
2015/12/08 面试题
C# Debug和Testing相关面试题
2015/10/25 面试题
行政经理的岗位职责
2013/11/23 职场文书
销售总经理岗位职责
2014/03/15 职场文书
财产公证书格式
2014/04/10 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书