我们在脚本开头打开与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:我们必须使用这种方法(函数),不能使用类。
非常感谢!
答案 0 :(得分:4)
有关第二个参数link_identifier(MySQL连接)
,请参阅mysql_query的手册如果未指定链接标识符,则打开最后一个链接 假设是mysql_connect()。
你也应该使用mysqli而不是旧的mysql。
答案 1 :(得分:0)
尝试将连接链接标识符作为第二个参数传递。
例如:
$connection1 = mysql_connect($host_1, $username_1, $password_1);
$connection2 = mysql_connect($host_2, $username_2, $password_2);
mysql_query('Query',$connection1);
mysql_query('Query',$connection2);