我正在尝试使用相同的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)");
答案 0 :(得分:1)
您只能对一个特定查询使用一个连接,并且必须将其作为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)");