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模板中出现空行解决方法
Mar 08 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
介绍Python中几个常用的类方法
2015/04/08 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python从入门到精通(DAY 3)
2015/12/20 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python实现音乐下载的统计
2018/06/20 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
zooplus意大利:在线宠物商店
2019/08/07 全球购物
单位委托书范本(3篇)
2014/09/18 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
学会感恩主题班会
2015/08/12 职场文书
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python