动态数据库连接 [ 2.0 版本 ]
请教各位大神 怎么动态去连接数据库呢
小弟现在做数据库分库 每个库里面的表是一样的 需要先访问到控制器 然后再判断具体连接哪个库
怎么在控制器里设置数据库连接呢 设置完在models里面的数据库操作都可以使用呢
最佳答案
-
在controller的beforeAction里面,重新设置db组件呗。
\Yii::$app->set('db', [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=' . $dbHost . ';dbname=' . $dbName, 'username' => $dbUser, 'password' => $dbPassword, 'charset' => 'utf8', 'emulatePrepare' => true, 'tablePrefix' => 'xx_', ]);
其中的$dbHost, $dbName, $dbUser, $dbPassword都是可以动态指定的。
共 1 条回复花椒 觉得很赞
其他 1 个回答
-
admin_admin 回答于 2017-02-27 10:27 举报
class MyActiveRecord extends CActiveRecord { public function getDbConnection() { return \Yii::app()->db2; } }
共 1 条回复admin_admin 回复于 2017-02-27 10:29 回复版本是1.1 配置文件中配置db2就数据库连接 另外在model ar 模式中继承这个MyActiveRecord类就可以了
路人甲
注册时间:2015-06-24
最后登录:2017-09-26
在线时长:11小时13分
最后登录:2017-09-26
在线时长:11小时13分
- 粉丝3
- 金钱125
- 威望0
- 积分235