2つの別々のサーバー上の2つのデータベースからデータ(ユーザー名と電子メールアドレス)を取得し、一方の側にのみユーザー名が存在し、表。私の研究では、MySQL内でクロスサーバクエリを実行できないので、PHPですべての処理を実行しようとしていますが、結果がなくなり、コードが判読不能になっています。主な問題は、できるだけユーザー名に関連付けられた電子メールアドレスを出力する必要がありますが、最初のデータベースだけがユーザー名と電子メールアドレスのリストを持つことです。私のアルゴリズムは完全に非効率であると確信しています。私はいくつかの簡単な解決策を見たいと思っています。このようなPHPを使用して異なるサーバーの2つのテーブルを比較する
$handle1 = mysql_connect($db_host1,$db_username1,$db_password1);
mysql_select_db($db_name, $handle1);
$query1 = "SELECT username, email, FROM tblservices";
$result1 = mysql_query($query1);
while($row = mysql_fetch_array($result1){
$arr1[]=array(username=>$row['username'],email=>$row['email']);}
$handle2 = mysql_connect($db_host2,$db_username2,$db_password2);
mysql_select_db($db_name, $handle2);
$query2 = "SELECT username from tblradius";
$result2 = mysql_query($query2, $handle2);
while($row = mysql_fetch_array($result2)){
$arr2[]=$row['username'];
}
echo "<p>List of users in DB1 and not DB2</p>";
$x=0;
foreach($arr1 as $row1) {
$user1=$row1['username'];
$email=$row1['email'];
foreach($arr2 as $user2) {
if ($user1==$user2) {
$x=1;
}
}
if ($x==0) {
echo "<p>$user1 - $email is not in DB2</p>";
}
$x=0;
}
}
echo "<p>List of users in DB2 and not DB1</p>";
$x=0;
foreach($arr2 as $user1) {
foreach($arr1 as $row2) {
$user2=$row2['username'];
if ($user1==$user2) {
$x=1;
}
}
if ($x==0) {
foreach($arr2 as $row3) {
$user3 = $row3['username'];
$email = $row3['email'];
if ($user1==$user3) {
echo "<p>$user3 $email - is in DB2 and not DB1</p>";
}
}
}
$x=0;
}
}