我正在尝试通过以下方式动态连接到数据库:
DB::disconnect('mysql');
Config::set('database.connections.mysql.database', 'db_1');
当我使用DB::table('table_from_db_1')->...
时,它工作得很好。我从db_1
那里获得数据;
但是,当我尝试获取DB::connection()->getDatabaseName()
时,它仍然返回原始数据库名称而不是db_1
。
问题:
- 为什么会这样?
- 如何有效地测试我是否实际连接到动态数据库?
对于遇到相同问题的任何人,使用 purge
而不是 disconnect
解决了问题。
DB::purge('mysql'); // purge instead of disconnect
Config::set('database.connections.mysql.database', 'db_1');
最后,使用 try-catch
内部的DB::connection()->getPdo();
检查连接是否有效。