2011-06-30 36 views
0

有誰知道在我成功登錄用戶到我的網站後,我可以添加額外的數據庫連接字段到yii配置文件的方式?在yii登錄後使用額外的數據庫

我們已經有了一個全球性的系統數據庫,我們在這裏配置我們的用戶並用他們的數據庫名保存一個字段。我想在認證用戶後創建另一個連接到該數據庫的連接。因此像Yii :: app() - > clientDB那樣引用它。這可能嗎?

我們系統上的每個客戶都有自己的帶有表格的數據庫。

回答

1

您可以通過這個代碼實現它(沒有測試,但應工作):

$connection = new CDbConnection($dsn, $username, $password); 
$connection->active = true; 
Yii::app()->setComponent('clientDB', $connection); 
1

當然可以。在你的配置文件時,它看起來像:

'db'=>array(
     'connectionString' => 'mysql:host=hostIP;port=3306;dbname=database1', 
        'class'=>'CDbConnection', 
     'emulatePrepare' => true, 
     'username' => 'username1', 
     'password' => 'password1', 
     'charset' => 'utf8', 
    ), 
      'db2'=>array(
     'connectionString' => 'mysql:host=hostIP2;port=3306;dbname=database2', 
        'class'=>'CDbConnection', 
     'emulatePrepare' => true, 
     'username' => 'username2', 
     'password' => 'password2', 
     'charset' => 'utf8', 
    ), 

db將默認的數據庫。無論何時你想切換,你都可以在控制器中寫下:

$connection->Yii::app()->db2; 
//then you would pass the connection into whatever you are using for your queries. 
//For example for an raw SQL command: 
$command=$connection->createCommand($sqlQuery); 
$command->execute();