Yii框架事务用法

15 篇文章 0 订阅

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


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值