入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Yii框架事务用法

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

首先介绍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();
	}
}


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。