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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
PHP面向对象的使用教程 简单数据库连接
Nov 25 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
php 文件缓存函数
Oct 08 PHP
基于header的一些常用指令详解
Jun 06 PHP
使用PHP会话(Session)实现用户登陆功能
Jun 29 PHP
php读取excel文件的简单实例
Aug 26 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 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
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
Electron 如何调用本地模块的方法
2019/02/01 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python实现简单温度转换的方法
2015/03/13 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
手机业务员岗位职责
2013/12/13 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
大学生入党自荐书
2015/03/05 职场文书
再谈python_tkinter弹出对话框创建
2022/03/20 Python