以下是使用adodb连接mysql并执行select查询的php代码示例:
include('adodb.inc.php'); # load code common to ADOdb
$db = &ADONewConnection('mysql');
$db->PConnect("localhost", "root", "password", "database");
$recordSet = &$conn->Execute('select * from products');
if (!$recordSet)
print $conn->ErrorMsg();
else
while (!$recordSet->EOF) {
print $recordSet->fields[0].' '.$recordSet->fields[1].'<BR>';
$recordSet->MoveNext();
}
$recordSet->Close(); # optional
$conn->Close(); # optional
?>
我必须使用
$db = &ADONewConnection('mysql');
$db->PConnect("localhost", "root", "password", "database");
和
$recordSet->Close(); # optional
$conn->Close(); # optional
每次我想进行查询以确定是否达到了max_connection的错误?
如果1000个用户或更多用户使用MySQL的max_connection = 100连接到我的网站,我该怎么办?
答案 0 :(得分:1)
当达到最大连接数时,$db->PConnect
应抛出异常或返回错误代码(我不太了解此驱动程序,请查看手册页)。您必须观察此错误并在出现错误时采取相应措施。通常,请等待几秒钟,然后再次尝试几次,然后再向用户返回错误。
现在,max_connection
是并发连接的限制。连接到您的应用程序的1000个用户(希望)不会同时运行查询,因此您应该安全一段时间。在脚本执行结束时,所有连接都将关闭(或在您的情况下返回到池中),并可供其他用户使用。因此,除非100个用户实际在应用程序的某个链接上同时点击,否则您将无法达到100的限制。
但是您应该编写脚本,以便在执行过程中尽可能晚地打开(或获取)连接,并尽早关闭(或释放)连接。这样,连接保持的时间跨度尽可能短,使其不太可能达到极限。
现在,如果你达到了极限,那么除了增加限制外,你无能为力。唯一的解决方法是暂停超出连接请求(正如我在第一段中所建议的那样)。