スクリプトの最初に、 host_1へのMySQL接続を開きます。その間のどこかで、 host_2への接続を開閉する関数(関数retrieve_information_from_host_2)を呼び出します。
残念ながら、関数呼び出し後のコードは、引き続き関数(host_2 )の接続を使用します。
ただし、前の接続host_1を続行するために必要です。
<?php
function retrieve_information_from_host_2($host_2, $username_2, $password_2, $database_2) {
$connection = mysql_connect($host_2, $username_2, $password_2);
if($connection) {
if(mysql_select_db($database_2)) {
$sql = "SELECT * FROM table WHERE id = 1;";
$erg = mysql_query($sql);
$row = mysql_fetch_assoc($erg);
return $row;
}
mysql_close($connection);
}
}
if(mysql_connect($host_1, $username_1, $password_1)) {
if(mysql_select_db($database_1)) {
$sql = "SELECT * FROM table WHERE id = 1;";
$erg = mysql_query($sql);
$row = mysql_fetch_assoc($erg); # CORRECT - This returns data from host 1
$row_host_2 = retrieve_information_from_host_2(); # CORRECT - This returns data from host 2
$sql = "SELECT * FROM table WHERE id = 2;";
$erg = mysql_query($sql);
$row = mysql_fetch_assoc($erg); # WRONG - This returns data from host 2 instead of host 1
}
mysql_close();
}
?>
各接続に名前を付けることで、ほぼすべての組み合わせを試しました
$connection_1 = mysql_connect($host_1, $username_1, $password_1);
...
mysql_close($connection_1);
明示的に閉じるなど。
何も役に立ちません。誰かが私たちにこの問題の解決策を与えることができますか?
PS:私たちはこのアプローチ(関数)に縛られており、クラスを使用することはできません。
どうもありがとうございます!