2012-03-06 4 views
0

私は別のサーバーから2つの異なるデータベースに接続することを楽しみにしています。また、私は両方のデータベースから単一の結果にデータをフェッチするクエリを実行したいと思います。これは、mysqlを使ったPHPスクリプトで行います。ここにどのようにそれをすることを楽しみにしている] [成功なし]どのように複数のデータベース、mysqlとクエリの両方のテーブルからお互いのサーバーに接続するには?

$dbh1 = mysql_connect('server1', 'uname', 'pwd')or die("Unable to connect to MySQL1"); 
$dbh2 = mysql_connect('server2', 'uname', 'pwd') or die("Unable to connect to MySQL2"); 

mysql_select_db('db1', $dbh1); 
mysql_select_db('db2', $dbh2); //both will have same table name though 

$qry = mysql_query("select * from db1.table1 where db1.table1.id='100' and db1.table1.id=db2.table1.id",$dbh1) or die(mysql_error()); 

$row= mysql_fetch_array($qry); 

echo $row[2]; 

いずれの結果も取得できませんまたはどちらかのエラーがあります。どんな助けもありがとう、tnx。 PHPのドキュメントによると

+0

異なるサーバー上のデータベース間の結合 - http://stackoverflow.com/questions/5832787/mysql-joins-between-databases-on-different-servers-using-python/5832973#5832973 – Devart

+0

@Col。 Shrapnel - 私の質問はあなたが指定したものとはかなり異なっています。私はそのページを調べて、まだブラウザの次のタブに開いています!あなたの指導に感謝してください:) – sree

+0

@Devart問題は同時に2つのサーバーに接続できません。だから接続されている場合、我々は結合を使用することができます! :) – sree

答えて

2

http://il2.php.net/manual/en/function.mysql-query.php

「リンクIDが指定されていない場合、にmysql_connect(で開かれた最後のリンク)が想定されます。」

この場合、$ dbh2からのデータのみを取得しています。

1つのクエリで行うことはできません。結果を取得した後、結果をマージする必要があります。

+0

うん、知っている...差分解決策が必要だよ:) – sree

2

このようには動作しません。 1つのSQLクエリで複数のデータベースを使用できますが、常に1つの接続ハンドルで動作します。 2つの異なるサーバに接続する必要がある場合は、PHPで2つのクエリとマージデータを使用する必要があります。

+1

誰もがより良いアイデアを持っているかどうかを確認することができます:) – sree

関連する問題