这个问题在这里已经有答案了:
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)");
1条答案
按热度按时间t9eec4r01#
对于一个特定的查询,只能使用一个连接,并且必须将它作为查询的第一个参数提供
mysqli_query()
. 如果要在同一查询中访问这两个数据库,则需要使用具有访问这两个数据库的用户名的连接。您不需要仅仅因为访问不同的数据库就使用不同的连接——连接中的数据库只是初始默认值,但您可以使用mysqli_select_db()
,并在查询中使用表名上的数据库前缀临时重写它。你不能参考
db1.*
在查询中,必须指定表名db1.videos.*
所以如果username1
有权同时阅读db1
以及db2
,您可以执行以下操作: