【问题标题】:Creating laravel multiple mysql connection from current database从当前数据库创建 laravel 多个 mysql 连接
【发布时间】:2017-06-21 16:14:05
【问题描述】:

我想在我当前的 laravel 数据库中存储多个数据库连接。 我需要通过下拉列表连接这些并即时生成报告。 最好的配置方法是什么

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您可以在第一个数据库中创建一个表“connection(strings)”并为该表创建一个模型。

    之后你可以这样做:

    $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');
    

    【讨论】:

    • 抱歉,您能否更准确地说我将如何从该连接执行查询
    • 那么 laravel 将始终使用我们在最后一行设置的默认数据库连接 :)
    【解决方案2】:

    您可以在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(...);
    

    【讨论】:

    • 感谢您的回复,但我必须添加 15 个 db 连接,以后还会添加更多,所以我需要放入当前的 db。
    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2018-11-06
    相关资源
    最近更新 更多