yii多数据库
Yii中同时连接多个数据库
Published by 荒野无灯 on 2011-07-09 02:12:45 under PHP/Yii Tags:yii,database 14162 views
0×01: 配置
在主配置文件 (main.php) 中:
|
1
2 3 4 5 6 7 8 9 10 11 |
注意,第二个以后的db数组中一定要写上class参数,让Yii 知道你在定义一个数据库连接对象,不然会报错。
一旦我们这样定义以后,就可以通过Yii::app()->db2 来指向第二个数据库了。
0×02 重载 GetDbConnection() 方法
因为每个Model都是(直接或者间接地)继承自基类CActiveRecord的,因此,都包含GetDbConnection()这个方法,GetDbConnection()返回一个数据库连接对象的句柄。我们需要在模型(model)里面通过重载这个方法来返回我们需要的数据库对象。
然后,假设我们新建了一文件 : protected/components/MyActiveRecord.php,然后在你的所有要用db2这个数据库的model里extend MyActiveRecord 而不是 CActiveRecord 。
这里我们是通过扩展Yii通用类来定义一个新的类,而不是在每个模型里面都重载 getDbConnection 方法,这样做的好处是更大程度上的代码重用,节省时间。
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// protected/components/MyActiveRecord.php
class MyActiveRecord extends CActiveRecord { public function getDbConnection() |
0×03 在模型中使用
经过以上两步以后,我们就可以这样来用:
|
1
2 3 4 5 |
// protected/models/Ad.php
class Ad extends MyActiveRecord { ... } |
yii多数据库的更多相关文章
- YII访问数据库
YII访问数据库 CDbConnection: 一个抽象数据库连接 CDbCommand: SQL statement CDbDataReader: 匹配结果集的一行记录 CDbTransaction ...
- yii 主从数据库分离-转载http://www.yiichina.com/doc/guide/2.0/db-dao
数据库复制和读写分离 很多数据库支持数据库复制 database replication来提高可用性和响应速度. 在数据库复制中,数据总是从主服务器 到 从服务器. 所有的插入和更新等写操作在主服务器 ...
- Yii 1 数据库操作 笔记
$result = array( 'id'=>null, 'val'=>0 ); $row1 = Yii::app()->db->createCommand()->ins ...
- yii操作数据库(PDO)
1.数据访问对象(DAO): 执行 SQL 语句 数据库连接建立后,SQL 语句就可以通过使用 [CDbCommand] 执行了.你可以通过使用指定的SQL语句作为参数调用 [CDbConnectio ...
- yii框架数据库操作数据访问对象(DAO)简单总结
Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DA ...
- yii操作数据库(AR)
模型: 有多少数据表,就建立多少模型 模型其实就是类 我们对数据库进行操作,需要实例化模型类,产生对象 通过对象调用相关的方法,就可以实现数据库的操作 增加记录 [php] $post =newP ...
- Yii操作数据库的3种方法
一.执行原生太SQL的PDO方式. 复制代码代码如下: $sql = "";//原生态sql语句 xx::model()->dbConnection->createCo ...
- yii 之数据库关联查询
<?php namespace app\controllers; use yii\web\Controller; use app\models\Customer; class CustomerC ...
- Yii 之数据库查询
模型代码: <?php namespace app\models; use yii\db\ActiveRecord; class Test extends ActiveRecord{ } 控制器 ...
随机推荐
- 【HTML5】Canvas画布
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- jq生成目录文件树jQuery Ztree基本用法
转自:http://www.cnblogs.com/linjiqin/p/4547452.html 1.首先在页面上有<ul/>标签 ? 1 <ul id="tree&qu ...
- ARP缓存记录种类动态条目和静态条目
ARP缓存记录种类动态条目和静态条目 为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用.根据缓存的有效期时间,ARP缓存中包含动态和静态条目本文选自ARP协议全面实战手册. 这里首 ...
- LIST_ENTRY
一个常见的 Windows 2000 数据类型是 LIST_ENTRY 结构.内核使用该结构将所有对象维护在一个双向链表中.一个对象分属多个链表是很常见的, Flink 成员是一个向前链接,指向下一个 ...
- 简单几何(线段相交) POJ 2653 Pick-up sticks
题目传送门 题意:就是小时候玩的一种游戏,问有多少线段盖在最上面 分析:简单线段相交,队列维护当前最上的线段 /******************************************** ...
- 并查集+拓扑排序 赛码 1009 Exploration
题目传送门 /* 题意:无向图和有向图的混合图判环: 官方题解:首先对于所有的无向边,我们使用并查集将两边的点并起来,若一条边未合并之前, 两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为 ...
- BZOJ1834 [ZJOI2010]network 网络扩容(最小费用最大流)
挺直白的构图..最小费用最大流的定义. #include<cstdio> #include<cstring> #include<queue> #include< ...
- 为tomcat 安装 native 和配置apr
yum install -y apr-devel openssl-devel gcc 安装native cd /lxyy/tomcat7/bin tar zxvf tomcat-native.tar. ...
- 一个简单的SqlServer游标使用
declare @id int ) declare c_department cursor for select id,name from department open c_department f ...
- redis API使用说明
List相关: LPOP key : 删除并取得LIST头部一个元素 RPOP key : 删除并取得LIST尾部一个元素 BLPOP key [key ...] timeout : 删除并取得LIS ...