牛骨文教育服务平台(让学习变的简单)
博文笔记

tp框架中执行事务

创建时间:2018-03-05 投稿人: 浏览次数:230
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定义的不同即可

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。