`

Yii 的 处理事务

    博客分类:
  • PHP
 
阅读更多

$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的实例

 

分享到:
评论

相关推荐

    YII数据库操作大全

    本文将深入探讨Yii中的数据库操作,包括对象操作、直接数据库操作以及事务处理。 首先,Yii的对象操作主要基于Active Record模式。Active Record是一种设计模式,它将数据库表记录映射为对象,让开发者可以以面向...

    yii2医疗实例

    6. **错误处理与日志**:Yii2有强大的错误处理和日志记录机制,帮助开发者在出现问题时快速定位和修复,对于医疗系统的稳定运行至关重要。 7. **单元测试与集成测试**:Yii2支持PHPUnit,使得编写测试用例变得简单...

    yii2中文开发手册

    同时,它支持SQL查询构建器和数据库事务处理。 5. **认证与授权**:Yii2内置了用户认证和访问控制功能,如RBAC(Role-Based Access Control)。通过身份验证组件,可以实现登录、注册、密码重置等功能,而访问控制...

    微服务之数据库服务-客户端(PHP+YII)

    对于需要跨多个数据库操作的情况,YII支持事务管理,可以确保原子性和一致性。 此外,考虑到微服务的可扩展性和容错性,可能需要实现数据库连接池和故障切换机制。在PHP中,可以使用第三方库如predis来实现Redis...

    YII快速入门教程

    - **使用AR处理事务** - **命名范围** - **参数化的命名范围** - **默认的命名范围** **3. RelationalActiveRecord(关联查询)** - **如何声明关联** - **关联查询** - **关联查询选项** - **为字段名消除歧义** ...

    深入理解Yii2.0 最新版

    事件(Event)和行为(Behavior)是Yii2.0的高级特性,涉及事件的绑定、触发和处理,以及如何在对象中定义和使用行为。 2. Yii2.0约定 Yii2.0采用特定的目录结构和约定来优化开发流程。了解Yii应用的目录结构和入口...

    yii2.0.chm

    手册将介绍数据模型的创建,查询语言(Query Builder),以及事务处理。 4. **表单处理**:涵盖表单的创建,验证规则的定义,以及使用Yii的内置过滤器来处理用户输入。 5. **安全**:包括认证、授权、密码哈希和...

    php YII框架数据库备份模块

    1. **事务处理**:Yii提供了事务处理功能,可以在一组数据库操作中实现原子性,确保数据的一致性。 2. **ActiveRecord**:Yii的ORM(对象关系映射)层,使开发者能以面向对象的方式操作数据库记录,简化了数据库...

    Yii2中文手册(中文教程完整版)

    编撰中 数据访问对象(DAO) - 数据库连接、基本查询、事务和模式操作 编撰中 查询生成器(Query Builder) - 使用简单抽象层查询数据库 编撰中 活动记录(Active Record) - 活动记录对象关系映射(ORM),检索和...

    YII2.0手册HTML离线版

    YII2.0在性能上进行了优化,支持缓存、数据库事务、安全特性以及自动代码生成,极大地提高了开发效率。 **框架主要特点:** 1. **组件驱动**:YII2.0的核心是基于组件的,每个功能都可以视为一个独立的组件,可以...

    Yii 读写分离 分表分库

    4. 跨分片的事务处理:由于数据分布在不同的数据库中,跨分片的事务处理需额外考虑。`YII-sharded-ext`可能提供了相应的支持,确保数据一致性。 总结,通过Yii框架的灵活配置和扩展支持,我们可以实现读写分离和分...

    php开发yii框架软件包

    1. **快速性能**:Yii使用高效的代码生成工具和缓存策略,确保在处理大量请求时仍能保持高速响应。 2. **面向对象**:Yii完全基于面向对象编程,提供了丰富的基类和设计模式,如单例、工厂、观察者等,方便开发者...

    Yii2的高级应用程序模板yii-advanced-app-2.0.12.tgz

    它遵循MVC(Model-View-Controller)设计模式,强调代码复用,提供了丰富的特性,包括对象关系映射(ORM)、活动记录(ActiveRecord)、缓存管理、访问控制、数据库事务等。 **高级应用程序模板结构** 该模板通常...

    YII后台源码

    3. **数据库操作**:利用 ActiveRecord 进行数据库操作,熟悉 SQL 查询和事务处理。 4. **路由和控制器**:设置和理解路由规则,编写控制器来处理 HTTP 请求。 5. **视图和模板**:创建视图文件,结合 Blade 或 ...

    Yii2队列扩展支持DBRedisRabbitMQBeanstalk和Gearman

    这样可以利用数据库的事务处理能力,保证数据的一致性,并且易于与其他数据库操作集成。 2. **Redis队列**:Redis是一个高性能的键值存储系统,常用于缓存和消息队列。Yii2队列与Redis结合,能提供快速的任务处理和...

    管理系统系列--基于yii2的cmf管理系统.zip

    框架内置了各种工具和组件,如缓存、数据库事务处理、身份验证、权限控制等,简化了开发过程。 2. **MVC架构** 在Yii2 CMF中,模型负责处理业务逻辑和数据操作,视图用于展示数据,控制器则作为模型和视图之间的...

    yii-basic-app-2.0.15.tgz

    5. ORM(对象关系映射):Yii提供了ActiveRecord实现,使得数据库操作更加便捷,支持SQL查询构建和事务处理。 6. 错误和日志管理:提供强大的错误报告和日志记录功能,便于调试和维护。 7. 自动化测试:Yii支持...

    Yii 2.0 权威指南-10142017.pdf.tar.gz_Yii2.0_yes_yii框架

    3. **数据库操作**:深入讨论 ActiveRecord,SQL 查询构建器,以及事务处理。 4. **视图与布局**:阐述视图的创建和管理,以及如何使用布局来统一应用程序的外观。 5. **控制器与路由**:解释控制器的职责,路由...

    yii快速入门教程--一个非常好的php框架

    - **使用AR处理事务**: 同DAO。 - **命名范围**: 提供了更灵活的查询条件组合方式。 - **参数化的命名范围**: 通过传递参数来动态改变查询条件。 - **默认的命名范围**: 定义默认的查询条件。 **3. ...

Global site tag (gtag.js) - Google Analytics