Yii的Active Record模型中,数据库联接是通过getDbConnection()来获取的。
默认情况下,该函数返回的是配置文件中的componet/db。
如果需要修改,可以先在配置文件的componet下,创建一个新的配置,例如:
'db_new'=> array(
'class' => 'CDbConnection',//必须指定,以让Yii知道这里配置的是一个对象
'connectionString' => 'mysql:host=localhost;dbname=test',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
)
然后在自定义的AR类中,重载getDbConnection()方法
class MyAR extends CActiveRecord
{
public function getDbConnection()
{
if (self::$db===null) {
self::$db=Yii::app()->getComponent('db_new');
//也可以用 self::$db=Yii::app()->db_new;
if (self::$db instanceof CDbConnection) {
return self::$db;
} else {
throw new CDbException(Yii::t('yii','Active Record requires a "db_new" CDbConnection application component.'));
}
}
return self::$db;
}
}