Laravel 数据库:连接多个 MySQL 数据库

第一步、定义数据库链接

  • .env
DB_CONNECTION_TEST1=test1
DB_HOST_TEST1=192.168.0.1
DB_PORT_TEST1=3306
DB_DATABASE_TEST1=database1
DB_USERNAME_TEST1=password1
DB_PASSWORD_TEST1=123456


DB_CONNECTION_TEST2=test2
DB_HOST_TEST2=192.168.0.2
DB_PORT_TEST2=3306
DB_DATABASE_TEST2=database2
DB_USERNAME_TEST2=password2
DB_PASSWORD_TEST2=654321
  • config/database.php
'test1' => [
	'driver' => 'mysql',
	'url' => env('DATABASE_URL'),
	'host' => env('DB_HOST_TEST1', '127.0.0.1'),
	'port' => env('DB_PORT_TEST1', '3306'),
	'database' => env('DB_DATABASE_TEST1', 'forge'),
	'username' => env('DB_USERNAME_TEST1', 'forge'),
	'password' => env('DB_PASSWORD_TEST1', ''),
	'unix_socket' => env('DB_SOCKET', ''),
	'charset' => 'utf8mb4',
	'collation' => 'utf8mb4_unicode_ci',
	'prefix' => '',
	'prefix_indexes' => true,
	'strict' => true,
	'engine' => null,
	'options' => extension_loaded('pdo_mysql') ? array_filter([
		PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
	]) : [],
],

'test2' => [
	'driver' => 'mysql',
	'url' => env('DATABASE_URL'),
	'host' => env('DB_HOST_TEST2', '127.0.0.1'),
	'port' => env('DB_PORT_TEST2', '3306'),
	'database' => env('DB_DATABASE_TEST2', 'forge'),
	'username' => env('DB_USERNAME_TEST2', 'forge'),
	'password' => env('DB_PASSWORD_TEST2', ''),
	'unix_socket' => env('DB_SOCKET', ''),
	'charset' => 'utf8mb4',
	'collation' => 'utf8mb4_unicode_ci',
	'prefix' => '',
	'prefix_indexes' => true,
	'strict' => true,
	'engine' => null,
	'options' => extension_loaded('pdo_mysql') ? array_filter([
		PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
	]) : [],
],

第二步、连接第二个数据库

1.Schema 表结构更改

在代码迁移时,可以使用 Schema 提供的 connection() 方法:

Schema::connection('test2')->create('some_table', function($table)
{
    $table->increments('id'):
});

2.Query 数据库查询

  • 查询语句构造器
    public function searchNews($name){
        $search = DB::connection('test1')->table('news')
            ->where('title', 'like', "%".$name."%")
            ->where('description', 'like', "%".$name."%")
            ->orderBy('inputtime', 'desc')
            ->paginate(15);
        $search = $search->appends(array(
            'name'=>$name,
        ));
        return $search;
    }

  • 原生语句
public function getUser(){
        return DB::connection('test1')->select("select *from user limit 10");
}
selectOne:return DB::connection('test1')->selectOne
update:return DB::connection('test1')->update
delete:return DB::connection('test1')->delete
insert:return DB::connection('test1')->insert
commit:return DB::connection('test1')->commit
rollBack:return DB::connection('test1')->rollBack
等等
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值