我想知道是否可以在同一连接中更改数据库名称 ?
原因是我正在处理一个报告,该报告需要遍历同一连接(主机,用户,传递)中的所有数据库(超过100个)。
目前我只是在查询中的每个表名之前手动添加数据库名称。像:
"SELECT * FROM `database_a`.`users` WHERE ...";
我使用“更改数据库名称”或“切换数据库...”在Google上进行了一些搜索,但其中大多数是关于在config/database.php
中创建不同的连接数组,但这不是我的情况(超过100个数据库) )
由于
答案 0 :(得分:0)
如何在表格选择中定义数据库?
class Book extends Model {
protected $table = 'database1.books'
}
class Book2 extends Model {
protected $table = 'database2.books'
}
答案 1 :(得分:0)
由于您只是更改数据库名称,因此请创建一个包含所有数据库名称的数组。然后使用查询构建器,您可以在循环中执行
DB::table($databasesArray[0].'.table_name')->where(...)
我认为这会让你走上正轨。 E.g:
$databases = ['db1','db2'];
foreach($databases as $db) {
$users [] = DB::table($db.'.users')->where('status', 'active')->get();
}
// $users = all users from all Databases