Php 两个不同数据库上的内部联接查询-Mysql

Php 两个不同数据库上的内部联接查询-Mysql,php,mysql,database,phpmyadmin,Php,Mysql,Database,Phpmyadmin,我们有两个不同的数据库,我正在尝试使用内部联接相互查询 当我从phpmyadmin运行查询时,查询工作得非常好。但是,当我试图将查询放入php页面时,我无法使该行正常工作。我假设mysql\u select\u db行中缺少了一些内容,在该行中,我引用了主机/db/user/pass作为第一个数据库 为了让这个查询在页面上正常运行,我缺少了什么?同样,我相信实际的查询能够工作,因为它确实在phpmyadmin中运行 像往常一样提前感谢 这是我正在使用的代码 $hostname_db = "123

我们有两个不同的数据库,我正在尝试使用内部联接相互查询

当我从phpmyadmin运行查询时,查询工作得非常好。但是,当我试图将查询放入php页面时,我无法使该行正常工作。我假设mysql\u select\u db行中缺少了一些内容,在该行中,我引用了主机/db/user/pass作为第一个数据库

为了让这个查询在页面上正常运行,我缺少了什么?同样,我相信实际的查询能够工作,因为它确实在phpmyadmin中运行

像往常一样提前感谢

这是我正在使用的代码

$hostname_db = "123.456.78.910";
$database_db = "votes_db";
$username_db = "votes_dbuser";
$password_db = "password123";
$db = mysql_connect($hostname_db, $username_db, $password_db, true) or trigger_error(mysql_error(),E_USER_ERROR); 

$hostname_db2 = "123.456.78.910";
$database_db2 = "survey_db";
$username_db2 = "survey_dbuser";
$password_db2 = "password456";
$db2 = mysql_connect($hostname_db2, $username_db2, $password_db2, true); 

// trying to make this work, query ok in phpmyadmin, but not on the php page
mysql_select_db($database_db, $db);
$query_testdb3 = sprintf("SELECT votes_db.vote_table.vote_survey_id
FROM votes_db.vote_table 
inner join survey_db.survey_table 
ON votes_db.vote_table.vote_survey_id = survey_db.survey_table.survey_id
WHERE votes_db.vote_table.vote_survey_id = 1457 ");
$testdb3 = mysql_query($query_testdb3, $db) or die(mysql_error());
$row_testdb3 = mysql_fetch_assoc($testdb3);
$totalRows_testdb3 = mysql_num_rows($testdb3);

不久前我也有同样的问题()

因此,删除第二个($db2)上的“true”选项,一切都会好起来

德国劳埃德船级社

将最后一行“$testdb3”中的列#更改为“$row_testdb3”

另外,如果您将$db和db2放在单独的类和函数中,并使用:

mysql_close($db);

每次查询之后。

都是权限问题。连接到数据库的用户没有适当的权限。托管公司为我解决了这个问题,所以我不能确切地告诉你们他们做了什么,但现在可以了


Tim是正确的,它是从phpmyadmin开始工作的,因为我是以超级用户身份登录的…

如果您使用绝对db.table.field类型的引用,您实际上不需要默认的db内容-默认db仅在您执行
table.field
引用时适用-毕竟必须知道您想要从哪个db获得该表。只是一个猜测,但是PhpMyAdmin可能是以超级用户身份登录的,并且拥有所有数据库的权限,而投票用户可能只拥有投票数据库的权限。使用root连接或向其中一个用户授予权限,这可能会解决问题。蒂姆-你解决了。这是一个权限问题。删除“true”并不能解决它,但我改变了这两件事的顺序只是为了让它见鬼,它起了作用……某种程度上。我现在收到了权限错误,但它似乎做了些什么。也许修改权限可以解决这个问题。谢谢,这是许可证。颠倒这两件事的顺序可能会影响到它试图连接的用户,这可能就是为什么这会改变你(和我)的情况,但最终,托管公司为我解决了一个权限问题。
$totalRows_testdb3 = mysql_num_rows($row_testdb3);
mysql_close($db);