$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的对象操作主要基于Active Record模式。Active Record是一种设计模式,它将数据库表记录映射为对象,让开发者可以以面向...
6. **错误处理与日志**:Yii2有强大的错误处理和日志记录机制,帮助开发者在出现问题时快速定位和修复,对于医疗系统的稳定运行至关重要。 7. **单元测试与集成测试**:Yii2支持PHPUnit,使得编写测试用例变得简单...
同时,它支持SQL查询构建器和数据库事务处理。 5. **认证与授权**:Yii2内置了用户认证和访问控制功能,如RBAC(Role-Based Access Control)。通过身份验证组件,可以实现登录、注册、密码重置等功能,而访问控制...
对于需要跨多个数据库操作的情况,YII支持事务管理,可以确保原子性和一致性。 此外,考虑到微服务的可扩展性和容错性,可能需要实现数据库连接池和故障切换机制。在PHP中,可以使用第三方库如predis来实现Redis...
- **使用AR处理事务** - **命名范围** - **参数化的命名范围** - **默认的命名范围** **3. RelationalActiveRecord(关联查询)** - **如何声明关联** - **关联查询** - **关联查询选项** - **为字段名消除歧义** ...
事件(Event)和行为(Behavior)是Yii2.0的高级特性,涉及事件的绑定、触发和处理,以及如何在对象中定义和使用行为。 2. Yii2.0约定 Yii2.0采用特定的目录结构和约定来优化开发流程。了解Yii应用的目录结构和入口...
手册将介绍数据模型的创建,查询语言(Query Builder),以及事务处理。 4. **表单处理**:涵盖表单的创建,验证规则的定义,以及使用Yii的内置过滤器来处理用户输入。 5. **安全**:包括认证、授权、密码哈希和...
1. **事务处理**:Yii提供了事务处理功能,可以在一组数据库操作中实现原子性,确保数据的一致性。 2. **ActiveRecord**:Yii的ORM(对象关系映射)层,使开发者能以面向对象的方式操作数据库记录,简化了数据库...
编撰中 数据访问对象(DAO) - 数据库连接、基本查询、事务和模式操作 编撰中 查询生成器(Query Builder) - 使用简单抽象层查询数据库 编撰中 活动记录(Active Record) - 活动记录对象关系映射(ORM),检索和...
YII2.0在性能上进行了优化,支持缓存、数据库事务、安全特性以及自动代码生成,极大地提高了开发效率。 **框架主要特点:** 1. **组件驱动**:YII2.0的核心是基于组件的,每个功能都可以视为一个独立的组件,可以...
4. 跨分片的事务处理:由于数据分布在不同的数据库中,跨分片的事务处理需额外考虑。`YII-sharded-ext`可能提供了相应的支持,确保数据一致性。 总结,通过Yii框架的灵活配置和扩展支持,我们可以实现读写分离和分...
1. **快速性能**:Yii使用高效的代码生成工具和缓存策略,确保在处理大量请求时仍能保持高速响应。 2. **面向对象**:Yii完全基于面向对象编程,提供了丰富的基类和设计模式,如单例、工厂、观察者等,方便开发者...
它遵循MVC(Model-View-Controller)设计模式,强调代码复用,提供了丰富的特性,包括对象关系映射(ORM)、活动记录(ActiveRecord)、缓存管理、访问控制、数据库事务等。 **高级应用程序模板结构** 该模板通常...
3. **数据库操作**:利用 ActiveRecord 进行数据库操作,熟悉 SQL 查询和事务处理。 4. **路由和控制器**:设置和理解路由规则,编写控制器来处理 HTTP 请求。 5. **视图和模板**:创建视图文件,结合 Blade 或 ...
这样可以利用数据库的事务处理能力,保证数据的一致性,并且易于与其他数据库操作集成。 2. **Redis队列**:Redis是一个高性能的键值存储系统,常用于缓存和消息队列。Yii2队列与Redis结合,能提供快速的任务处理和...
框架内置了各种工具和组件,如缓存、数据库事务处理、身份验证、权限控制等,简化了开发过程。 2. **MVC架构** 在Yii2 CMF中,模型负责处理业务逻辑和数据操作,视图用于展示数据,控制器则作为模型和视图之间的...
5. ORM(对象关系映射):Yii提供了ActiveRecord实现,使得数据库操作更加便捷,支持SQL查询构建和事务处理。 6. 错误和日志管理:提供强大的错误报告和日志记录功能,便于调试和维护。 7. 自动化测试:Yii支持...
3. **数据库操作**:深入讨论 ActiveRecord,SQL 查询构建器,以及事务处理。 4. **视图与布局**:阐述视图的创建和管理,以及如何使用布局来统一应用程序的外观。 5. **控制器与路由**:解释控制器的职责,路由...
- **使用AR处理事务**: 同DAO。 - **命名范围**: 提供了更灵活的查询条件组合方式。 - **参数化的命名范围**: 通过传递参数来动态改变查询条件。 - **默认的命名范围**: 定义默认的查询条件。 **3. ...