如何在laravel5.5中连接并使用多个数据库

如何在laravel中配置多个数据库。我找了下网上的资料,大多语焉不详,让新手们不知所措,尤其是后面数据库的连接与使用。注意这里laravel是最新的5.5版。

当然,这里假定你已经初步掌握了laravel使用的基本,至少在浏览器输入127.0.0.1:8000或localhost:8000之后能看到Laravel的初始界面。

其次,你要在WAMP的数据库里面有相应的数据库,主数据库database_name是默认连接上的,这里也不讲了。

1、配置.env文件

 1 DB_CONNECTION=mysql
 2 DB_HOST=127.0.0.1
 3 DB_PORT=3306
 4 DB_DATABASE=database_name
 5 DB_USERNAME=root
 6 DB_PASSWORD=
 7 
 8 DB_HOST_CENTER=127.0.0.1
 9 DB_PORT_CENTER=3306
10 DB_DATABASE_CENTER=database_center
11 DB_USERNAME_CENTER=root
12 DB_PASSWORD_CENTER=

2、配置config/database.php

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],
        'mysql_center' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST_CENTER', 'localhost'),
            'port' => env('DB_PORT_CENTER', '3306'),
            'database' => env('DB_DATABASE_CENTER', 'forge'),
            'username' => env('DB_USERNAME_CENTER', 'forge'),
            'password' => env('DB_PASSWORD_CENTER', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

3、创建Controller连接数据库,这一步主要是用来演示与测试连接效果。

在laravel要目录下执行:php artisan make:controller UserController,会在\App\Http\Controllers\ 的下面生成UserController.php文件。我的文件配置如下

<?php

namespace App\Http\Controllers;
use DB;
use Illuminate\Http\Request;

class UserController extends Controller
{
    //test of connection
    public function db(){
        echo '<pre>';
        echo '<br>this is a db connection test<br>';
        $res = DB::connection('mysql_center');
        $res1 = $res->select("SELECT * FROM rootdbitems WHERE id<10");
        var_dump($res1); 
    }
}

当然,我们还要回到Routes\web.php中配置路由,以添加显示界面,

Route::get('db', 'UserController@db'); //在UserConroller中调用db函数。

这样配置好以后,在浏览器中输入127.0.0.1:8000/db就可以后看到数据库的输出结果。

如有疑问,请留言。