php - 如何在 Laravel 中划分读/写数据库设置?

标签 php mysql database laravel setting

这是 Laravel 中数据库分区设置的推荐规则。

'mysql' => [
    'read' => [
                  'host' => '192.168.1.1',
              ],
   'write' => [
                  'host' => '196.168.1.2'
              ],
      'sticky'    => true,
      'driver'    => 'mysql',
      'database'  => 'database',
      'username'  => 'root',
      'password'  => '',
      'charset'   => 'utf8mb4',
      'collation' => 'utf8mb4_unicode_ci',
      'prefix'    => '',
  ],  

但是如果我想对每个读/写数据库使用不同的访问信息,如DB_NAME、USER_ID、PASS等,那我该怎么做呢?谢谢。

最佳答案

您可以创建两个连接,然后使用 on 方法指定与 Eloquent 的连接:

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
'mysql2' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST2', '127.0.0.1'),
            'port' => env('DB_PORT2', '3306'),
            'database' => env('DB_DATABASE2', 'forge'),
            'username' => env('DB_USERNAME2', 'forge'),
            'password' => env('DB_PASSWORD2', ''),
            'unix_socket' => env('DB_SOCKET2', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],


User::on('mysql2')->where('id', $id)->update($data);


或使用查询生成器:

DB::connection('mysql2')->table('users')->where('id', $id)->update($data);

关于php - 如何在 Laravel 中划分读/写数据库设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46061607/

相关文章:

php - 在 opencart 产品页面中没有得到正确的输出

database - 具有复杂数据库结构中条件的 Hibernate 查询

mysql - 具有特殊修改的 SQL 选择查询

php - mysql 根据连接查询和最新日期时间获取所有行

ruby-on-rails - 管理保存在数据库中的 Rails 应用程序配置设置的最佳方法?

java - 以编程方式嵌入 Java h2 数据库

数组内的 PHP 数组搜索

php - 存储自由格式数据的最佳方式是什么?

PHP:\Exception 或命名空间内的异常

mysql - SQL 一对多?