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

Yii 事务处理

创建时间:2015-02-01 投稿人: 浏览次数:588
$connection=new CDbConnection($dsn,$username,$password);
//或
$connection=Yii::app()->db;   // 假设你已经建立了一个 "db" 连接
//原始方式:
$transaction=$connection->beginTransaction();

try
{

    $connection->createCommand($sql1)->execute();

    $connection->createCommand($sql2)->execute();

    //.... other SQL executions
 
    $transaction->commit();

}

catch(Exception $e) // 如果有一条查询失败,则会抛出异常

{

    $transaction->rollBack();

}


 

AR中使用方法:

每个 AR 实例都含有一个属性名叫 dbConnection ,是一个 CDbConnection 的实例,这样我们可以在需要时配合 AR 使用由 Yii DAO 提供的 事务 功能:

$model=Post::model();

$transaction=$model->dbConnection->beginTransaction();

try
{
    // 查找和保存是可能由另一个请求干预的两个步骤
    // 这样我们使用一个事务以确保其一致性和完整性
    $post=$model->findByPk(10);

    $post->title="new post title";

    $post->save();

    $transaction->commit();

}

catch(Exception $e)
{

    $transaction->rollBack();

}

 

注意:上面红色部分其实都是CDbconnection的实例

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