0

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

当我从 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);
4

3 回答 3

0

前段时间我有同样的问题(mysql-php 多数据库问题

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

血糖仪

于 2012-07-25T21:31:05.173 回答
0
$`totalRows_testdb3 = mysql_num_rows($testdb3);`

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

$totalRows_testdb3 = mysql_num_rows($row_testdb3);

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

mysql_close($db);

每次查询后。

于 2012-07-25T22:32:50.910 回答
0

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

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

于 2012-07-26T18:19:59.443 回答