如何在PHP中同时连接到2个数据库

Dar*_*ein 18 php mysql database

我试图从1个PHP脚本连接到同一个MySQL实例上的2个数据库.

目前我唯一能想到的方法是连接两个数据库,每个数据库都有不同的用户.

我在迁移脚本中使用它,我从原始数据库中获取数据并将其插入到新数据库中,因此我循环遍历大量结果列表.

连接到1个数据库,然后尝试启动与同一用户的第二个连接,只需将当前数据库更改为新数据库.

还有其他想法吗?

Luc*_*man 22

你需要将一个布尔值true作为可选的第四个参数传递给mysql_connect().有关详细信息,请参阅PHP的mysql_connect()文档.


Joe*_*oni 13

如果您的数据库用户可以访问两个数据库并且它们位于同一服务器上,则可以使用一个连接,并在表名之前指定要使用的数据库.例:

SELECT column
FROM database.table
Run Code Online (Sandbox Code Playgroud)

根据您的需要,您可以执行INSERT INTO并节省大量处理时间.

INSERT INTO database1.table (column)
SELECT database2.table.column
FROM database2.table
Run Code Online (Sandbox Code Playgroud)


Gau*_*rav 8

卢卡斯是对的.我假设两个数据库都托管在同一主机上.

或者,您只能创建1 db连接并根据需要交换数据库.这是伪代码.

$db_conn = connect_db(host, user, pwd);
mysql_select_db('existing_db', $db_conn);
 -- do selects and scrub data --
mysql_select_db('new_db', $db_conn);
-- insert the required data --
Run Code Online (Sandbox Code Playgroud)