laravel如何连接多个数据库进行操作

1.配置.env文件

这是原先地数据库连接数据

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

 

添加新的数据库连接

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=root

2.配置config/database.php

'default' => env('DB_CONNECTION', 'mysql'), //这句代表默认连接mysql
'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', 'root'),
  'password' => env('DB_PASSWORD', 'root'),
  'charset' => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix' => '',
  'strict' => false,
 ],
 //添加的数据库连接信息
 'mysql_test' => [
  'driver' => 'mysql',
  'host' => env('DB_HOST_TEST', '127.0.0.1'),
  'port' => env('DB_PORT_TEST', '3306'),
  'database' => env('DB_DATABASE_TEST', 'forge'),
  'username' => env('DB_USERNAME_TEST', 'root'),
  'password' => env('DB_PASSWORD_TEST', 'root'),
  'charset' => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix' => '',
  'strict' => false,
 ],

使用模型实例获取数据库数据

<?php

namespace App\Model;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
 // 数据库'database_test'中的test表
 public $table = 'test';
 public $timestamps = false;
 protected $connection = 'mysql_test';

}

DB类操作数据库数据

// 连接mysql_test库
DB::connection('mysql_test')->table('test')->where('id',1)->first();
// 连接mysql库
DB::connection('mysq')->table('test')->where('id',1)->first();
// 连接mysql库
DB::table('test')->where('id',1)->first();

 

posted @ 2020-09-04 15:02  小林不会飞  阅读(630)  评论(0编辑  收藏  举报