[英]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.