2013-06-11 66 views

回答

0

您可以將其添加到您的main.php前使用第二個DB:

'db'=>array(
     'connectionString' => 'mysql:host=localhost;dbname=database', 
     'emulatePrepare' => true, 
     'username' => 'username', 
     'password' => 'password', 
     'charset' => 'utf8', 
     'schemaCachingDuration' => 3600, 
     'enableProfiling' => true, 
    ), 

    'db2'=>array(
     'connectionString' => 'mysql:host=localhost;dbname=database2', 
     'class'=>'CDbConnection', 
     'emulatePrepare' => true, 
     'username' => 'username', 
     'password' => 'password', 
     'charset' => 'utf8', 
     'schemaCachingDuration' => 3600, 
     'enableProfiling' => true, 
    ), 

然後你可以設置getDbConnection()方法是使用第二個分貝的活動記錄中。我會建議製作一個從CActiveRecord擴展到這個代碼的父類,然後再擴展它。

應包含:

public static $db2; 

public function getDbConnection() 
{ 
    if(self::$db2!==null) 
    return self::$db2; 
    else 
    { 
    self::$db2=Yii::app()->db2; 
    if(self::$db2 instanceof CDbConnection) 
    { 
     self::$db2->setActive(true); 
     return self::$db2; 
    } 
    else 
     throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.')); 
    } 
} 
+0

我會試試看,謝謝 – sneyder05

相關問題