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)
但是当我尝试使用查询时,它仍然使用默认查询。
如果仍然有人在寻找这个问题的答案,答案在这里:
您可以在运行时更改数据库名称(非连接),如下所示:
在控制器或中间件之上导入以下类:
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连接中的数据库名称。
希望对您有所帮助