0

我的网络服务器遇到这样的错误:

服务器: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;
    }
}

当出现此类错误时,我是在寻找正确的方向还是有其他一些事情需要首先考虑?

4

0 回答 0