PHP
关于laravel学习--laravel多库操作
配置多个数据库配置,从而实现多个数据库的操作
今天将给大家讲解如何在laravel框架种,实现多个数据库的操作,做法也是相当的简单,下面开始我们的操作,第一步数据库配置,我们先在根目录下的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' => env('DB_PREFIX', ''), 'timezone' => env('DB_TIMEZONE', '+00:00'), 'strict' => false, ], 'mysql_data2' => [ 'driver' => 'mysql', 'host' => env('DB_DATA2_HOST', 'localhost'), 'port' => env('DB_DATA2_PORT', 3306), 'database' => env('DB_DATA2_DATABASE', 'forge'), 'username' => env('DB_DATA2_USERNAME', 'forge'), 'password' => env('DB_DATA2_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => env('DB_PREFIX', ''), 'timezone' => env('DB_TIMEZONE', '+00:00'), 'strict' => false, ],
配置完我们的数据库后,我们在根目录的数据库配置文件中,配置我们两个数据库的用户名跟密码,以及数据库名,代码如下:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=czy-service-goods DB_USERNAME=root DB_PASSWORD= DB_DATA2_HOST=127.0.0.1 DB_DATA2_PORT=3306 DB_DATA2_DATABASE=czy-service-goods2 DB_DATA2_USERNAME=root DB_DATA2_PASSWORD=
完成以上操作,我们便完成了数据库的配置,接下来,我们将要在业务中调用数据库,跟一个数据库的时候,其实相差不多,只是多了一个链接数据库方法而已。下面是我自己底层封装好的一个获取单条数据的方法,代码如下:
static function dbGet($connection='',$table, $id, $lockForUpdate = false) { if ($lockForUpdate) { return DB::connection($connection)->table($table) ->where('id', intval($id))->lockForUpdate()->first(); } else { return DB::connection($connection)->table($table) ->where('id', intval($id))->first(); } }
多库操作的时候其实只是多了DB::connection('数据库名'),我这里的值是从外面传进来的,根据自己的业务不同,链接的数据库不同,这样我们就完成了多库的操作。
细心的网友们会发现,以前单库的链接方式是这样的:
return DB::table($table)->where('id', intval($id))->lockForUpdate()->first();
现在是这样的:
return DB::connection($connection)->table($table) ->where('id', intval($id))->lockForUpdate()->first();
这样就是单库跟多库链接的时候的区别,好了,今天就给大家讲到这里~。
0条评论