如何在mysql + php中同时连接到两个数据库

时间:2018-07-02 18:06:26

标签: php mysql mysqli

我正在尝试使用相同的MySQL查询连接到2个数据库。但是查询不起作用...我不知道我在哪里做错了..有什么想法吗?

$link1 = mysqli_connect("localhost","username1","pass1","db1");
$link2 = mysqli_connect("localhost","username2","pass2","db2");

@$sql = mysqli_query("SELECT db1.* FROM db1.videos WHERE db1.VID NOT IN (SELECT VID FROM db2.videos)");

1 个答案:

答案 0 :(得分:1)

您只能对一个特定查询使用一个连接,并且必须将其作为mysqli_query()的第一个参数提供。如果要在同一查询中访问两个数据库,则需要使用具有访问两个数据库权限的用户名的连接。您不必仅因为要访问其他数据库而使用其他连接-连接中的数据库只是初始默认值,但是您可以使用mysqli_select_db()进行更改,并在查询中临时覆盖它通过在表名上使用数据库前缀。

您不能在查询中引用db1.*,必须指定表名db1.videos.*

因此,如果username1有权读取db1db2,则可以执行以下操作:

$sql = mysqli_query($link1, "SELECT db1.videos.* FROM db1.videos WHERE db1.VID NOT IN (SELECT VID FROM db2.videos)");