1.如果仅仅只是使用PDO的方式操作数据库,简单在yii配置文件中新增db2的连接。
'collection'=>array(
'class' => 'CDbConnection' ,
'connectionString' => 'mysql:host=localhost;dbname=test2,
'emulatePrepare' => true,
'username' => 'root',
'password' => 'root',
'tablePrefix' => 'uc_',
'charset' => 'utf8',
),
注意添加CDbConnection,不然yii报错。
使用的时候:$connection=Yii::app()->db2;
2.因为每个Model都是(直接或者间接地)继承自基类CActiveRecord的,因此,都包含GetDbConnection()这个方法,GetDbConnection()返回一个数据库连接对象的句柄。我们需要在模型(model)里面通过重载这个方法来返回我们需要的数据库对象。
components/下添加
<?php
class CTestActiveRecord extends CActiveRecord{
public function getDbConnection()
{
$db=Yii::app()->getComponent('db2');
if($db instanceof CDbConnection)
return $db;
else
throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.'));
}
}
?>
在所有使用db2的model修改继承自CTestActiveRecord