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获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
PHP4中session登录页面的应用
Jul 25 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
phplot生成图片类用法详解
2015/01/06 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
python 标准差计算的实现(std)
2019/07/29 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
优秀企业获奖感言
2014/02/01 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
法律讲堂观后感
2015/06/11 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
Python中的变量与常量
2021/11/11 Python
什么是SOLID
2022/03/24 Javascript