检查MySQL连接(OOP PHP)

时间:2010-08-06 14:19:28

标签: php mysql

我的代码的各个部分需要我检查是否已经建立了mysql连接。我正在使用if(self::$connection),但self::connection似乎总是返回“资源ID#6”而不是布尔值 - 我做错了什么?

class mysql_lib{
    static $connection;     

    static function connect($user = FALSE){     
        if(!$user){
            $user = 'mr_update';
        }
        $password = 'some_password';
        self::$connection = mysql_connect('localhost', $user, $password, TRUE);
        mysql_select_db('codlife_headfirst2');      
    }

    static function disconnect(){
        mysql_close(self::$connection);
    }

    static function mres($str){
        if(!self::$connection){
            self::connect('mres');
            $str = mysql_real_escape_string($str);
            mysql_close(self::$connection); 
        }
        else{
            $str = mysql_real_escape_string($str);
        }
        return $str;
    }
...

谢谢!


我的解决方案:断开连接后再次将$ connection设为false ...

static function disconnect(){
    mysql_close(self::$connection);
    self::$connection = FALSE;
}

3 个答案:

答案 0 :(得分:3)

只需使用mysql_ping()方法

即可
  

检查与服务器的连接是否正常。如果它已经下降,则尝试自动重新连接。长时间保持空闲的脚本可以使用此功能,以检查服务器是否已关闭连接并在必要时重新连接。

     

如果与服务器MySQL服务器的连接正在工作,则返回TRUE,否则返回FALSE。

static function isActive() {
   return mysql_ping($connection);//returns boolean
}

答案 1 :(得分:0)

mysql_connect将返回一个资源,所以这是正确的。不要让那扔你。看起来一切都应该正常工作。还有别的东西不起作用吗?

更多信息:

mysql_connect()成功时返回MySQL链接标识符,失败时返回FALSE。因此,如果没有进行任何连接尝试,您的$ connection变量将为null(其计算结果为false)。如果尝试连接尝试失败,则为false。如果连接成功,$ connection将是一个'MySQL链接标识符',它将评估为true。如果您尝试回显或打印“MySQL链接标识符”,它将打印类似“资源ID#6”的内容。这就是它应该做的。

答案 2 :(得分:0)

我找到了解决方案,请参阅上面的更新问题。