从当前数据库创建laravel多个mysql连接

时间:2017-02-04 09:26:36

标签: laravel

我想在我当前的laravel db中存储多个数据库连接。 我需要通过下拉列表连接这些并动态生成报告。 配置此

的最佳方法是什么

2 个答案:

答案 0 :(得分:1)

你可以创建一个表"连接(字符串)"在你的第一个数据库中,为该表创建一个模型。

之后你可以这样做:

$selected = Connection::query()->where('name', 'fromdropdown')->first();
   $connection = $selected;
                config(['database.connections.data' => array(
                    'driver'    => 'sqlsrv',
                    'host' => $connection['Database_Server'],
                    'database' => $connection['Database_Name'],
                    'username' => $connection['Database_User'],
                    'password' => $connection['Database_Pass']

                )]);

                DB::setDefaultConnection('data');

答案 1 :(得分:0)

您可以在app/config/database.php文件中设置多个数据库连接。

示例:

'default' => 'mysql',

    'connections' => array(

        # Our primary database connection
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'host1',
            'database'  => 'database1',
            'username'  => 'user1',
            'password'  => 'pass1'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        # Our secondary database connection
        'mysql2' => array(
            'driver'    => 'mysql',
            'host'      => 'host2',
            'database'  => 'database2',
            'username'  => 'user2',
            'password'  => 'pass2'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    )

然后只需在查询中使用连接名称:

$users = DB::connection('mysql2')->select(...);