0

因此,我正在开发一个小型 Web 应用程序,您可以在其中管理您的数据库。

现在我可以使用以下函数来检索所有数据库

DB::select('SHOW DATABASES')

但是我现在希望能够为每个数据库获取表,并最终对这些数据库做更多的事情,但我认为如果我能正常工作,那将不是问题。

通常你的配置中有不同的数据库,但因为我希望我的应用程序使用“任何”数据库并确保我不必手动添加所有数据库等,因为这是我想要我的网络应用程序的工作为我完成。

例如,我尝试过欺骗它一点但没有成功。

DB:select('USE dbName; SHOW TABLES');
DB::select('SELECT dbName(); SHOW TABLES'); 

显然这没有用,但是有什么“适当的”解决方案吗?我认为即时编辑 .env 变量可能是一种选择,但我似乎也找不到“合法”的方式来做到这一点。

4

1 回答 1

0

你不需要这个。

我认为即时编辑 .env 变量可能是一种选择,但我似乎也找不到“合法”的方式来做到这一点。

你需要的是这个

DB::purge('mysql');//IMP

Config::set('database.connections.mysql.host', $host);
Config::set('database.connections.mysql.database', $database);
Config::set('database.connections.mysql.username', $username);
Config::set('database.connections.mysql.password', $password);

您只需要找出一种方法来动态获取$host$database$username和的值$password

一种方法是拥有一个存储所有这些值的数据库并将默认数据库连接(例如mysqlin config/database.php)指向它。然后即时从中读取值并相应地设置连接。

于 2016-08-29T03:33:52.223 回答