当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkPHP框架中执行事务的方法示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-21 20:01:37 浏览: 评论:0 

这篇文章主要介绍了thinkPHP框架中执行事务的方法,结合实例形式分析了thinkPHP框架中使用模型中封装的startTran()、Commit()及Rollback()方法执行事务与回滚操作相关实现技巧,需要的朋友可以参考下。

本文实例讲述了thinkPHP框架中执行事务的方法,分享给大家供大家参考,具体如下:

  1. function tran(){ 
  2.   //定义事务成功失败的标志 
  3.   $mark = true; 
  4.   //1. 实例化模型 
  5.   $model = D('student'); 
  6.   //2. 开启事务处理 
  7.   $model->startTrans(); 
  8.   //3. ls减少2000 
  9.   $sql = "update student set money=money-2000 where uname='ls'"
  10.   $result = $model->execute($sql); 
  11.   //判断sql执行是否成功,如果失败,则将$mark改为false 
  12.   if(!$result){ 
  13.     $mark = false; 
  14.   } 
  15.   //4. zs增加2000 
  16.   $sql = "update student set money=money+2000 where uname='zs'"
  17.   $result = $user->execute($sql); 
  18.   //判断sql执行是否成功,如果失败,则将$mark改为false 
  19.   if(!$result){ 
  20.     $mark = false; 
  21.   } 
  22.   $mark = false; //暂时强制改为false,测试回滚效果 
  23.   //5. 提交事务 
  24.   //判断$mark的值,为ture则提交,为false则回滚 
  25.   if($mark){ 
  26.     $user->commit(); 
  27.   } else { 
  28.     $user->rollback(); 
  29.   } 

TP中事务相关的方法: 都是在Model.class.php中定义好的

startTran(): 开启事务处理

Commit(): 提交事务

Rollback(): 回滚

当需要执行的事务是在不同的sql表中时,只需要执行两个sql的model定义的不同即可

Tags: thinkPHP执行事务

分享到: