У меня простой select
в моем коде просмотра. Он представляет собой список городов, и на моем сервере есть несколько баз данных, которые отвечают за каждый город. У меня есть код модели, и он занимает city_id
, От этого зависит, я хочу подключиться к базе данных и искать необходимые данные в ней. Я добавил вторую базу данных в мои компоненты, такие как:
'db' => require(__DIR__ . '/db.php'),
'db2' => require(__DIR__ . '/db_login.php'),
и два файла, которые возвращают соединение с базой данных.
Файл 1:
'class' => 'yii\db\Connection',
'dsn' => $dsn,
'username' => $username,
'password' => $password,
'charset' => 'utf8',
Файл 2:
'class' => 'yii\db\Connection',
'dsn' => $dsn,
'username' => $username,
'password' => $password,
'charset' => 'utf8',
Я хочу как-то динамически изменить имя своей базы данных сразу после выбора пользователя.
Вы можете сделать звонок для dbconnection
$actual_dsn = 'your_dns_actual_value'
$yourConnection = new \yii\db\Connection([
'dsn' => $actual_dsn,
'username' => $username,
'password' => $password,
]);
$yourConnection->open();
в конце концов закройте предыдущее открытое соединение
Вы можете сделать это в вашем db_login.php в зависимости от потребностей приложения
Может быть :
if (choice =='a') {
'db' => require(__DIR__ . '/db.php')
}
else {
'db2' => require(__DIR__ . '/db_login.php')
}