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

Yii框架事务用法

创建时间:2016-05-25 投稿人: 浏览次数:1741

首先介绍Yii事务的处理方法

$transaction= Yii::app()->db->beginTransaction();//创建事务
$transaction->commit();//提交事务
$transaction->rollback();//回滚事务

 其次上代码

class xxxxx extends xxxxx2{

	public function aaa(){
		// 以下实例将需要事务处理的操作放进try里
		$transaction = Yii::app()->db->beginTransaction();
		try {
			$a = XXX::model()->findByPk(X);
			$a->x = 1;
			$a->setAttribute("字段名", "值")
			//如果仅仅写为:$a->save(); 那么就算保存失败,也不会去执行catch里的内容
			if(!$a->save()){
				throw new CException("这里保存失败了,通知事务回滚");
			}
			
			$b = YYY::model()->findByPk(Y);
			$b->y = 2;
			$b->setAttribute("字段名", "值")
			if(!$b->save()){
				throw new CException("这里保存失败了,通知事务回滚");
			}
			
			//这里也可以调用其他方法,同样适用于事务,提交之前,对数据库的更改不可见
			if(!$this->ccc()){
				throw new CException("这里保存失败了,通知事务回滚");
			}
			
			$transaction->commit(); //提交事务会真正的执行数据库操作
		} catch (Exception $e) {
			//如果操作失败, 数据回滚
			$transaction->rollback(); 
		}
	}

	public function ccc(){
		$c = ZZZ::model()->findByPk(Y);
		$c->y = 3;
		$c->setAttribute("字段名", "值")
		return $c->save();
	}
}


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