2012-07-30 62 views
1

我有2个数据库在同一台服务器上有2个相同的表。mulitiple数据库选择php mysql

我想要做的是从两个表中选择所有记录并将它们连接在一个数组中。 我一直在搞乱下面的脚本。出于某种原因,它返回db2.tbl的记录两​​次,并且根本不返回db1.tbl记录。当我尝试从单个数据库中选择数据时,它们都可以正常工作。有人看到问题吗?

<?PHP 
require_once("config.php"); 

$conn = @mysql_connect($dbhost, $dbuser, $dbpass)or die ('Error connecting to mysql server'.mysql_error()); 
$q = mysql_query("SELECT * FROM db1.tbl JOIN db2.tbl"); 
var_dump(mysql_num_rows($q)); 
while($arr = mysql_fetch_assoc($q)){ 
    var_dump($arr); 
} 

?> 

回答

1

这是你想要的吗?所有的数据库1的记录,然后所有记录DATABASE2:

$q = mysql_query("SELECT * FROM db1.tbl UNION SELECT * FROM db2.tbl"); 

我假设你与连接用户同时访问数据库。

+0

从来没有在'UNION'中选择*',特别是如果你不知道表中有相同的列(因为OP没有说他们这样做) – 2012-07-30 12:55:04

+0

他在第一行表示);但我同意你应该明确。 – pritaeas 2012-07-30 13:29:33

+1

所以他做到了!关于'UNION'中的'SELECT *'的评论虽然... – 2012-07-30 13:30:58

0

您的查询应该可以正常工作。但是,将倾斜(`)添加到您的数据库名称表名称。首先在mysql中执行查询,看看是否可以用php执行。