Я использую Yii 1.1.17 для своего портала.Я использую одно и то же приложение для подключения к различным базам данных в зависимости от имени домена.Я пишу фальшивые параметры в main.php
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=db',
'emulatePrepare' => TRUE,
'active' => FALSE,
'username' => 'dbUser',
'password' => 'dbP@ssW0rd',
'charset' => 'utf8'
),
Затем меняю их в Controller.php
так:
// get database params from url
$url = Yii::app()->request->serverName;
$db_param = explode(".",$url);
$db = Yii::app()->params['db'][$db_param[0]];
Yii::app()->db->setActive(false);
Yii::app()->db->connectionString = mysql:host=127.0.0.1;dbname=$db";
Yii::app()->db->username = $db;
Yii::app()->db->setActive(true);
username
совпадает с dbname
, а password
одинаково для всех баз данных.Когда я открываю портал, он дает мне
CDbException
CDbConnection failed to open the DB connection.
Но когда я записываю реальные значения действующей базы данных в connectionString
и username
внутри main.php
, она открывается, затем изменяет этозначения и подключается в правильную базу данных.
Мой вопрос: Как запретить Yii автоматически подключаться перед запуском кода в Controller.php
.Я установил 'active' => FALSE
, но это не помогает.