有誰知道在我成功登錄用戶到我的網站後,我可以添加額外的數據庫連接字段到yii配置文件的方式?在yii登錄後使用額外的數據庫
我們已經有了一個全球性的系統數據庫,我們在這裏配置我們的用戶並用他們的數據庫名保存一個字段。我想在認證用戶後創建另一個連接到該數據庫的連接。因此像Yii :: app() - > clientDB那樣引用它。這可能嗎?
我們系統上的每個客戶都有自己的帶有表格的數據庫。
有誰知道在我成功登錄用戶到我的網站後,我可以添加額外的數據庫連接字段到yii配置文件的方式?在yii登錄後使用額外的數據庫
我們已經有了一個全球性的系統數據庫,我們在這裏配置我們的用戶並用他們的數據庫名保存一個字段。我想在認證用戶後創建另一個連接到該數據庫的連接。因此像Yii :: app() - > clientDB那樣引用它。這可能嗎?
我們系統上的每個客戶都有自己的帶有表格的數據庫。
您可以通過這個代碼實現它(沒有測試,但應工作):
$connection = new CDbConnection($dsn, $username, $password);
$connection->active = true;
Yii::app()->setComponent('clientDB', $connection);
當然可以。在你的配置文件時,它看起來像:
'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();