我们在脚本的开头打开一个到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:我们绑定到这种方法(函数),不能使用类。
非常感谢!