内部联接查询2个不同的数据库 - Mysql

时间:2012-07-25 21:23:49

标签: php mysql database phpmyadmin

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

当我从phpmyadmin运行查询时,查询工作正常。但是,当我尝试将查询放入php页面时,我无法使该行工作。我假设我在mysql_select_db行中遗漏了一些东西,我引用了第一个数据库的host / 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);

3 个答案:

答案 0 :(得分:0)

前段时间我有同样的问题(mysql-php multiple databases problem

因此,删除第二个($ db2)上的“true”选项,一切都应该没问题。

胃肠

答案 1 :(得分:0)

$`totalRows_testdb3 = mysql_num_rows($testdb3);`

更改" $ testdb3"中的列#在" $ row_testdb3"。

的最后一行
$totalRows_testdb3 = mysql_num_rows($row_testdb3);

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

mysql_close($db);
每次查询后

答案 2 :(得分:0)

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

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