【发布时间】:2014-02-05 07:46:37
【问题描述】:
我正在尝试在同一实例下设置与多个数据库的连接以进行相关数据分析
这里是连接代码的基本思路
$a = array('a','b','c');
$b = array('a','b','c');
foreach($a as $ac){
foreach($b as $bc){
Config::set('database.connections.'.$ac.'_'.$bc, array(
'driver' => 'mysql',
'host' => 'somehost',
'port' => '3306',
'database' => $ac.'_'.$bc,
'username' => 'user',
'password' => 'user',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
));
}
}
该实例中大约有 40 个不同的数据库,并且可能会迅速变化,因此我想避免在配置文件中永久创建连接并使用用户输入动态生成连接。从我收集到的信息来看,上面的代码应该自动将数组附加到 database.connections(请参阅laravel github),但我收到了这个错误。
SQLSTATE[HY000] [2002] 没有这样的文件或目录
如果我将database.connections.".$ac.'_'.$bc 更改为database.connections.mysql,代码运行正常。那么我在这里缺少什么:(,我在输入将命中的第一个控制器的构造函数下调用那段代码。
非常感谢您提前提供的帮助
【问题讨论】:
-
嗨。你找到答案了吗?
-
在下面查看我的评论。自从我接触该项目的代码以来已经有一段时间了,但根据我发现的观察,我在我提出的每个新数据库中创建了一个虚拟表,因此代码总是有一些可以保证的东西。
标签: php mysql database laravel