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

omqzjyyz  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(573)

这个问题在这里已经有答案了

mysqli连接来自2个不同数据库的表(3个答案)
两年前关门了。
我正在尝试连接到mysql的同一查询上的两个数据库。但查询不起作用。。。我不知道我哪里做错了。。有什么想法吗?

$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)");
t9eec4r0

t9eec4r01#

对于一个特定的查询,只能使用一个连接,并且必须将它作为查询的第一个参数提供 mysqli_query() . 如果要在同一查询中访问这两个数据库,则需要使用具有访问这两个数据库的用户名的连接。您不需要仅仅因为访问不同的数据库就使用不同的连接——连接中的数据库只是初始默认值,但您可以使用 mysqli_select_db() ,并在查询中使用表名上的数据库前缀临时重写它。
你不能参考 db1.* 在查询中,必须指定表名 db1.videos.* 所以如果 username1 有权同时阅读 db1 以及 db2 ,您可以执行以下操作:

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

相关问题