所以我正在创建一个Web应用程序,它应该能够按计划将任何SQL语句上传到数据库中列出的任何服务器。它应该连接到数据库,执行语句并根据收到的信息进行报告。然后它可以断开连接。
目前,我有一份工作,它抓住了数据库中所需的所有信息,例如。 host,port,DBName等。我只需要形成一个连接,然后执行语句。
我使用的是Laravel框架。
编辑:我无法修改任何数据库配置,因为数据库信息存储在表中,而不是配置文件中。
由于
答案 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电子表格。