Laravel中的一个查询中的两个数据库连接

时间:2019-02-04 07:01:35

标签: php database laravel connection

我需要使用INSERT INTO ... SELECT,但是在Laravel中使用了两个不同的数据库。数据库A是本地数据库。数据库B是一个远程数据库。

我需要这样的东西:

INSERT INTO local.table1
SELECT * 
FROM remote.table1
ON DUPLICATE KEY UPDATE col1=col1

有什么办法可以在laravel中实现吗?谢谢!

1 个答案:

答案 0 :(得分:4)

您可以在Laravel中建立多个数据库连接。关注this帖子。

然后利用它:

<?php 

$selectQuery = \DB::connection('remote')
    ->table('table1')
    ->select('column1','column2','column3');

\DB::connection('local')->insert('INSERT INTO table1 (column1, column2, column3) ' . $selectQuery->toSql(), $selectQuery->getBindings());