2013-07-19 83 views
1

我有两个数据库(比如Old和In_Use),每个数据库都有不同的表格。 In_Use数据库中的表格将在一段时间后移动到旧数据库,并在In_Use数据库中创建新表格。从未知数据库中选择表

在表单中,我有TableName作为输入,并且希望从选定的表中选择项目。但我不知道该表是哪个数据库(因为它随时间而改变)!

从另外一个职位,我得到了下面的

$Old = mysql_connect($hostname, $username, $password); 
$In_Use = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('Old', $Old); 
mysql_select_db('In_Use', $In_Use); 

此代码连接到这两个数据库。

我的问题:有没有办法“虚拟连接”这两个数据库,以便我可以从旧表或In_Use中的表中获取项目?

mysql_query('select * from TableName', $TheTwoDBs); 
+0

没有办法,我知道。不要使用'mysql _ *()'函数,它们已被弃用。 – Crontab

+0

也许一个接一个地尝试,如果第一个没有抛出异常,返回收集的选择,如果是的话,从第二个选择。 – Vesper

回答

1

您可以查询INFORMATION_SCHEMA.TABLES表。 它包含不同数据库中所有系统/用户表和视图的信息(表名,模式,行号,排序规则,存储引擎等)。

这将返回在表“stackoverflow_table”存在(可能有不止一个数据库,随时改进)的数据库的名称

SELECT table_schema 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' 
AND TABLE_NAME='stackoverflow_table' 

你已经确定的表的数据库后,使用适当的连接到所需的数据库。