Laravel 使用多个数据库连接
1、配置.env文件
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=root
DB_PASSWORD=
DB_HOST_CENTER=127.0.0.1
DB_PORT_CENTER=3306
DB_DATABASE_CENTER=database_center
DB_USERNAME_CENTER=root
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、创建model
a、这个model将采用默认的'mysql'连接
class UserModel extends Model
{
// 数据库'database'中的users表
protected $table = "users";
}
b、 这个model将使用mysql_center连接
class UserModel extends Model
{
// 数据库'dadtabase_center'中的users表
protected $connection = 'mysql_center';
protected $table = "users";
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
关于 LearnKu
如果一台数据库服务器上有上百个databae,怎么处理比较好?
:joy: 相当于在 config/databases.php 配上几百个连接,这也太难受了。
太好了,能具体说一下吧。
@piszd
终于想到怎么处理了,记录一下。env DB_DATABASE不要配置,在Model里面把 protected $table 的配置写成
库名.表名。MySqlConnector.connect
if (! empty($config[‘database’])) {
$connection->exec(“use
{$config['database']};”);}