求助 事务回滚 startTrans rollback commit

浏览:12633 发布日期:2015/11/05 分类:求助交流 关键字: startTrans rollback commit
        $Field->D('Field');
        $Field->startTrans(); // 事务开始
        //记录字段信息
        $add = $Field->create($field);
        if($add){
               $Field->add();
        }else{
            return array('status'=>false,'info'=>$Field->getError());
        }
        //创建数据表字段
        $createCol = $Field->addColumn($tblname,$field['field'],$field['type']);
        if (false === $createCol){
            //字段添加失败回滚
            $Field->rollback();//事务回滚 删除记录的字段信息
            return array('status'=>false,'info'=>'创建字段失败!');
        }
        //字段添加成功 提交事务
        $Field->commit();
操作中 addColumn 使用 $this->execute($sql) 来实现数据表字段的添加
按理来说$Field->add();这个添加字段信息 应该是在$Field->commit();的时候才执行
但是发现如果添加的字段已存在
$Field->addColumn执行后数据就add成功了
而且 $Field->rollback(); 也不会删除删除刚才add的数据
第一次接触事务这个东西 不是很明白 希望大家能够指导下
最佳答案
评论( 相关
后面还有条评论,点击查看>>