laravel 5在运行时更改数据库名称

JCD*_*JCD 3 database connection

有没有一种方法可以更改连接的数据库名称,而不是添加另一个?如果在Config.database.connections中添加3个或5个数据库,这没关系,但是如果我有100个或更多的数据库,该怎么办?由于所有人都使用相同的HOST,USERNAME和PASSWORD,因此是否可以仅动态更改数据库名称并在整个会话期间使用它?我试过了

Config::set('database.connections.mysql.database', 'database1');
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用查询时,它仍然使用默认查询。

Lea*_*ner 5

如果仍然有人在寻找这个问题的答案,答案在这里:

您可以在运行时更改数据库名称(非连接),如下所示:

在控制器或中间件之上导入以下类:

use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
Run Code Online (Sandbox Code Playgroud)

然后在函数内部,如下更改数据库名称:

DB::disconnect('mysql');//here connection name, I used mysql for example
Config::set('database.connections.mysql.database', $dbName);//new database name, you want to connect to.
Run Code Online (Sandbox Code Playgroud)

之后,每当您进行查询以从任何表中提取任何数据时,它将搜索到提供的新数据库中。

请注意,这是为了在运行时更改SAME连接中的数据库名称。

希望对您有所帮助