我的网络服务器遇到这样的错误:
服务器:example.com 用户:yyy MySQL 连接限制:当前 MySQL 连接:81
我正在调查这个问题的原因。
PHP手册说:
感谢 PHP 4 的 Zend 引擎引入的引用计数系统,自动检测到不再引用它的资源,并被垃圾收集器释放。因此,很少需要手动释放内存。
那么,对于页面显示时间超过 3 秒(通常)的网站来说,保留对 MySQL 标识符的引用是否会成为问题?
我像这样管理 MySQL 连接:
1 - 我保留一个全局变量$LINK
作为对 MySQL 资源的引用
//MySQL connection
$LINK = 0;
function db_connect(){
//get variables
global $LINK,$CONF;
if($LINK == 0){
$LINK = @mysql_connect($CONF['host'], $CONF['user'], $CONF['password'])){
}
}
2 - 我使用这样的功能来做查询:
function db_query($sql){
global $LINK,$CONF,$NB_QUERIES,$TEMPS_QUERIES,$queries, $CLOSED;
if(db_connect()){
//do some debug stuff if needed
//execute the query
$result = @mysql_query($sql,$LINK);
//do some other debug stuff if needed
return $result;
} else {
return 0;
}
}
当出现此类错误时,我是在寻找正确的方向还是有其他一些事情需要首先考虑?