Yii2动态连接到第二个数据库

时间:2015-08-26 14:49:13

标签: php mysql yii2 yii2-model

我的View代码中有一个简单的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',

我想在用户'之后动态地以某种方式更改我的数据库名称。选择。

2 个答案:

答案 0 :(得分:1)

您可以调用dbconnection

 $actual_dsn = 'your_dns_actual_value'
 $yourConnection = new \yii\db\Connection([
    'dsn' => $actual_dsn,
    'username' => $username,
    'password' => $password,
 ]);
 $yourConnection->open();

最终关闭之前的开放连接

您可以在db_login.php中执行此操作,具体取决于应用程序的需求

答案 1 :(得分:0)

也许:

if (choice =='a') {
'db' => require(__DIR__ . '/db.php')
}
else {
'db2' => require(__DIR__ . '/db_login.php')
}