关于同时连接到多个不同主机的简短说明……
我在一个主要从一个数据库提取内容但使用另一个服务器上的数据库来验证许可证的网站上工作。人们可能会期望以下代码有效
<?php
// 打开到主数据库的连接
$res1 = mysql_connect($host1, $user1, $pass1);
mysql_select_db($db1);
// 打开到许可证服务器的连接
$res2 = mysql_connect($host2, $user2, $pass2);
mysql_select_db($db2, $res2);
// 获取许可证数据并在完成后关闭
mysql_query($check_sql, $res2);
// ...
mysql_close($res2);
// 现在从主数据库提取内容
// 不指定资源应该默认为最后一个打开的数据库
mysql_query($query);
// ...
?>
事实证明,由于此最后一个查询找不到活动连接,因此它将尝试使用无参数的 mysql_connect() 进行连接。但是,如果您将其作为 mysql_query($query, $res1) 执行,或者运行此主机的 mysql_connect(),则它可以正常工作。因此,似乎不可能拥有具有总体“全局”数据库连接并与对另一个主机/数据库的临时连接交织在一起的代码……