2

MYSQLは、2つの異なるサーバーで2つのデータベースに接続してクエリを実行します

助けてくれてありがとう、

私はこれを機能させるために1週間試みてきました.このサイトや他のサイトでさまざまな例をグーグル検索しました. 同じサーバーで 2 db に接続しようとしています。

それぞれからデータを取得できますが、データを結合/結合するコードの書き方がわかりません

これは、オンラインで読んだ多数のヘルプと投稿方法に基づいた私の間違ったコードです。どんな助けや手がかりも大歓迎です。出力/印刷するものを何でも手に入れることができれば、私は幸せです

// connect to db1 contact info
$host1='db1hostname';
$user1='db1user';
$password1='db1pw';
$database1='db1user';

// connect to db2, phone call info
$host2='db2hostname';
$user2='db2user';
$password2='db2pw';
$database2='db2user';

$connect1 = mysql_connect($host1, $user1, $password1) OR DIE 
('Unable to connect to database! Please try again later.');

$connect2 = mysql_connect($host2, $user2, $password2) OR DIE 
('Unable to connect to database! Please try again later.');

// i think this is where things start to go wrong

mysql_select_db($database1, $connect1);
mysql_select_db($database2, $connect2);

    // i want to join these 2 tables from diff db by the caller info

これはセル番号です // データベース 2 の情報は通話記録テーブルから取得され、変更できないため、テーブルのプライマリ ID で 2 つのテーブルを接続できません。それぞれの ID がどうなるかわからないためですdb2 で呼び出します。呼び出し元のセル番号で 2 つの db テーブルを接続したい

$data = mysql_query("SELECT `m`.`id`, `m`.`created`, `m`.`caller`, `m`.`content_text`, 
`c`.`iname`, `c`.`caller`  
FROM database1.contacts c, database2.messages m    
WHERE `c`.`caller` = `m`.`caller` ") or die(mysql_error()); 

// i then want to print the results to a table

while($info = mysql_fetch_array( $data )) 
4

2 に答える 2

0

最初のデータベースに接続し、2 番目のデータベースでクエリを実行する場合は、以下のコードのような簡単な方法を使用してください。

$query = "SELECT t1.*, t2.*
          FROM tableOfDB1 t1
          LEFT JOIN database2.tableOfDB2 t2 ON t1.ID = ts2.TableOne_ID
          ";

または、db2 からのデータのみが必要な場合

 $query = "SELECT  t2.*
          FROM database2.tableOfDB2  t2";

あなたの例では、これを試してください

$data = mysql_query("SELECT `m`.`id` AS mID, `m`.`created` AS mCreated, `m`.`caller` AS mCaller, `m`.`content_text`, 
`c`.`iname` AS cIname, `c`.`caller` AS cCaller  
FROM database1.contacts c, database2.messages m    
WHERE `c`.`caller` = `m`.`caller` ") or die(mysql_error()); 

while( $row = mysql_fetch_array($data) )
{
  echo "<br>mCaller: ".$row['mCaller'];
 echo "<br>cCaller: ".$row['cCaller'];
}
于 2013-10-11T15:01:26.967 に答える