能够使用Laravel

时间:2017-09-26 12:47:14

标签: php sql database laravel

所以我正在创建一个Web应用程序,它应该能够按计划将任何SQL语句上传到数据库中列出的任何服务器。它应该连接到数据库,执行语句并根据收到的信息进行报告。然后它可以断开连接。

目前,我有一份工作,它抓住了数据库中所需的所有信息,例如。 host,port,DBName等。我只需要形成一个连接,然后执行语句。

我使用的是Laravel框架。

编辑:我无法修改任何数据库配置,因为数据库信息存储在表中,而不是配置文件中。

由于

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式在运行时设置它:

$connKey = 'CustomConnection';

$dbInfo = DatabaseInfo::find($databaseId);

Config::set('database.connections.' . $connKey, array(
    'driver'    => 'mysql',
    'host'      => $dbInfo->hostName,
    'database'  => $dbInfo->database,
    'username'  => $dbInfo->username,
    'password'  => $dbInfo->password,
    'charset'   => 'utf8',
    'collation' => 'utf8_general_ci',
    'prefix'    => '',
));

// Now you can set the new connection to the models

$myModel = new MyModel;
$myModel->setConnection($connKey);

// Or you can use it this way too:
$users = DB::connection($connKey)->select(...);

// Or, also:
$pdo = DB::connection($connKey)->getPdo();

答案 1 :(得分:0)

我用一个非常类似的方式解决了这个问题:

names(topicterms) <- 1:3

这将创建一个具有随机名称的新连接(因此,如果在队列中执行多个连接时它们不会清除同一个数据库),则为其分配详细信息,执行在变量$ statement中定义的select语句。然后从中创建一个Excel电子表格。