2013-07-19 2 views
1

각각 테이블이 다른 두 개의 데이터베이스 (예 : Old 및 In_Use)가 있습니다. In_Use db의 테이블은 잠시 후에 Old db로 이동하고 In_Use db에 새 테이블이 작성됩니다.알 수없는 데이터베이스로부터 테이블 선택

양식에서 TableName을 입력으로 사용하고 선택한 테이블에서 항목을 선택하려고합니다. 그러나 나는 그 테이블이 어느 DB인지 (시간이 지남에 따라 변하기 때문에) 모릅니다! 다른 게시물에서

나는 다음과 같은

$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); 

이 코드는 두 개의 데이터베이스에 연결되었다.

내 질문 : "가상으로"이 두 dbs에 가입 할 수있는 방법이 있습니까? 그렇기 때문에 Old 또는 In_Use 테이블에있는 항목을 가져올 수 있습니까?

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

내가 알지 못하는 방법입니다. 그리고 mysql _ *() 함수를 사용하지 말라. – Crontab

+0

처음에는 예외를 throw하지 않고 수집 된 선택을 반환하고 두 번째로 선택하면 차례로 시도해보십시오. – Vesper

답변

1

INFORMATION_SCHEMA.TABLES 테이블을 쿼리 할 수 ​​있습니다. 다른 데이터베이스의 모든 시스템/사용자 테이블 및 뷰에 대한 정보 (테이블 이름, 스키마, 행 번호, 데이터 정렬, 스토리지 엔진 등)가 들어 있습니다.

이것은 'stackoverflow_table'테이블 (하나 이상의 데이터베이스가있을 수 있습니다, 수정 주시기)에 존재하는 데이터베이스의 이름을 반환합니다

당신이 테이블의 데이터베이스를 식별 한 후
SELECT table_schema 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' 
AND TABLE_NAME='stackoverflow_table' 

, 원하는 데이터베이스에 대한 적절한 연결을 사용하십시오.

관련 문제