簡體   English   中英

檢查MySQL連接(OOP PHP)

[英]check for MySQL connection (OOP PHP)

我有我的代碼的各個部分,要求我檢查是否已建立mysql連接。 下面我使用if(self::$connection) ,但是self::connection似乎總是返回“Resource id#6”而不是boolean - 我做錯了什么?

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;
}

只需使用mysql_ping()方法

檢查與服務器的連接是否正常。 如果它已經下降,則嘗試自動重新連接。 長時間保持空閑的腳本可以使用此功能,以檢查服務器是否已關閉連接並在必要時重新連接。

如果與服務器MySQL服務器的連接正在工作,則返回TRUE,否則返回FALSE。

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

mysql_connect將返回一個資源,所以這是正確的。 不要讓那扔你。 看起來一切都應該正常工作。 還有別的東西不起作用嗎?

更多信息:

mysql_connect()在成功時返回MySQL鏈接標識符,如果失敗則返回FALSE。 因此,如果沒有進行任何連接嘗試,您的$ connection變量將為null(其計算結果為false)。 如果嘗試連接嘗試失敗,則為false。 如果連接成功,$ connection將是一個'MySQL鏈接標識符',它將評估為true。 如果您嘗試回顯或打印“MySQL鏈接標識符”,它將打印類似“資源ID#6”的內容。 這就是應該做的。

我找到了解決方案,請參閱上面的更新問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM