下面是一个 PHP 代码示例,用于连接到 mysql 并使用 adodb 执行选择查询:
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 连接到我的网站时,我该如何管理?
最佳答案
当达到最大连接数时,你的$db->PConnect
应该抛出异常或者返回错误代码(我对这个驱动不太了解,请查看man页)。您必须注意此错误并在出现错误时采取相应措施。通常,等待几秒钟,然后重试几次,然后再向用户返回错误。
现在,max_connection
是并发 连接数的限制。连接到您的应用程序的 1000 个用户(希望)不会同时运行查询,因此您应该暂时安全。在脚本执行结束时,所有连接都将关闭(或在您的情况下返回到池),并可供其他用户使用。因此,除非 100 个用户实际上同时单击应用程序中的某个链接,否则您不会达到 100 个限制。
但是您应该编写脚本,以便它们在执行过程中尽可能晚地打开(或获取)连接,并尽早关闭(或释放)连接。这样,连接保持的时间尽可能短,从而不太可能达到限制。
现在,如果您确实达到了限制,那么除了增加限制之外您别无选择。唯一的解决方法是搁置超出的连接请求(正如我在第一段中建议的那样)。
关于php - MySql 和 ADODB5 - 最大连接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993493/