2011-04-13 7 views
1

브라우저에 데이터를 표시하고 싶습니다. 데이터베이스에서 이미 데이터를 검색했지만 mysql_select_db으로 전화하면 하나의 데이터베이스 만 허용합니다. 하지만 내 데이터는 다른 데이터베이스에서 가져온 것입니다.하나 이상의 데이터베이스를 선택하는 방법

어떻게 선택합니까? 만약 내가 mysql_select_db를 쓰고있다면, mysql_select_db를 사용하고 있다면 asmany 데이터베이스를 하나의 데이터베이스로 가져 간다. 브라우저는 받아들이지 만 결과는 표시되지 않는다. 그것은 30 초의 최대 실행 시간을 보여줍니다 .. 내가 1 데이터베이스에서 작동하는 경우 결과는 브라우저에 표시되지만 동일한 conection에서 둘 이상의 데이터베이스와 연결하려고하면 문제가 발생합니다.

결과가

답변

0

먼저 오는 것보다 같은 문제는 내가 하나의 테이블을 사용하는 경우 하나의 database.but에 두 테이블을 연결하려고 할 때오고없고, 다른 테이블과 연결되어 데이터를 얻을 첫 번째 데이터베이스를 호출 한 다음 두 번째 데이터베이스에 대해 mysql_select_db을 호출 한 다음 두 번째 데이터베이스에서 값을 가져옵니다. 데이터를 필요로하는 곳에서 데이터베이스 사이를왔다 갔다 할 수 있습니다. PHP mysql 함수를 호출하기 전에 해당 데이터베이스에 mysql_select_db을 호출하기 만하면됩니다.

3

당신은 두 개의 서로 다른 연결

를 열 필요가
$con1 = mysql_connect($server1, $user1, $pass1); 
mysql_select_db($con1); 

$con2 = mysql_connect($server2, $user2, $pass2); 
mysql_select_db($con2); 

$query1 = mysql_query($sql1, $con1); 
$query2 = mysql_query($sql2, $con2); 

편집 :

당신이 두 개의 서로 다른 데이터베이스를 갖고 있다고, DB1과 DB2

: 모두 데이터베이스가 하나의 연결을시켜 액세스하는 경우

$sql1 = "SELECT * FROM db1.myTable WHERE something "; 
$sql2 = "SELECT * FROM db2.myOtherTable WHERE something "; 
+0

하지만 모든 데이터베이스는 하나의 연결에 있습니다. 2 개의 다른 커넥션을 만드는 것이 맞을까요? – pritosh

+0

오 죄송합니다. 그러면 두 개의 다른 연결을 만들기 위해 중복 될 것입니다. 그럼 대답을 수정하자 – marvin

+0

이러한 쿼리 괜찮아요. 나는 그것을 브라우저에 표시하는 방법을 말해 준다. 내가 mysql_select_db를 쓰는 중이라면, mysql_select_db를 사용하고 있다면 asmany datatabase에 대해 하나의 데이터베이스 base.for만을 사용하고있다. 브라우저는 받아들이지 만 결과는 표시되지 않는다. 그것은 30 초의 최대 실행 시간을 보여줍니다 .. 내가 1 데이터베이스에서 작동하는 경우 결과는 브라우저에 표시되지만 동일한 conection에서 둘 이상의 데이터베이스와 연결하려고하면 문제가 발생합니다. – pritosh

1

다음 중 하나를 사용하여 검색어를 정규화 할 수 있습니다. 데이터베이스 이름이 (SELECT * FROM db1.table; SELECT * FROM db2.table)이거나, 첫 번째 쿼리를 실행하고 결과를 PHP 배열에 저장하고 mysql_select_db()를 호출 한 다음 두 번째 쿼리를 실행할 수있다.

첫 번째 방법은 다소 유연합니다. 원하는 경우 데이터베이스 간 조인과 같은 작업을 수행 할 수 있습니다 (크로스 데이터베이스 조인이 얼마나 잘 수행되는지 보증 할 수는 없습니다).

관련 문제