php PDO判斷連線是否可用的實現方法

2022-10-06 08:27:07 字數 3082 閱讀 8406

mysql_ping() 檢查到伺服器的連線是否正常。如果到伺服器的連線可用,則返回true,否則返回false。

但pdo不支援mysql_ping()方法,因此需要自己編寫**模擬mysql_ping()方法,檢查連線是否可用。

**如下:

php/** * 檢查連線是否可用

* @param link $dbconn 資料庫連線

* @return boolean

*/function pdo_ping($dbconn) catch (pdoexception $e)

} return true;

}?>

**演示:

1、建立測試資料表

create table `user` (

`id` int(11) unsigned not null auto_increment,

`name` varchar(20) not null,

primary key (`id`)

) engine=innodb default charset=utf8;

2、插入測試資料

insert into user(name) values('fdipzone'),('xfdipzone'),('terry');

mysql> select * from user;

+----+-----------+

| id | name |

+----+-----------+

| 1 | fdipzone |

| 2 | xfdipzone |

| 3 | terry |

+----+-----------+

3、演示檔案

db.php

<?php // 資料庫操作類

class db

$dbhost = $config['host'];

$dbname = $config['dbname'];

$dbuser = $config['user'];

$dbpasswd = $config['password'];

$pconnect = $config['pconnect'];

$charset = $config['charset'];

$dsn = "mysql:host=$dbhost;dbname=$dbname;";

try

if ($pconnect)

$cowww.cppcns.comnn = new pdo($dsn, $dbuser, $dbpasswd, $h_param);

} catch (pdoexception $e) 程式設計客棧

self::$_instance = $conn;

return $conn;

} // 執行查詢

public static function query($dbconn, $程式設計客棧sqlstr, $condparam) catch (pdoexception $e)

$result = $sth->fetchall(pdo::fetch_assoc);

return $result;

} // 重置連線

public static function reset_connect()

}?>

test.php

<?php require 'db.php';

// 資料庫設定

$config = array(

'host' => 'localhost',

'dbname' => 'user',

'user' => 'root',

'password' => '',

'pconnect' => 0,

'charset' => ''

);// 迴圈執行

while(true)else

// 執行查詢

$sqlstr = 'select *www.cppcns.com from user where id=?';

$condparam = array(mt_rand(1,3));

$data = db::query($dbconn, $sqlstr, $condparam);

print_r($data);

// 延時10秒

echo 'sleep 10'.php_eol.php_eol;

sleep(10);

}/**

* 檢查連線是否可用

* @param link $dbconn 資料庫連線

* @return boolean

*/function pdo_ping($dbconn) catch (pdoexception $e)

} return true;

}?>

4、執行

在php cli模式下執行test.php,然後馬上執行mysql.server stop 與 mysql.server start 模擬閃斷

mysql.server stop

shutting down mysql

.... success!

mysql.server start

starting mysql

success!

執行輸出:

connect ok

array

( [0] => array

([id] => 2

[name] => xfdipzone

))sleep 10

connect failure

array

( [0] => array

([id] => 3

[name] => terry

))sleep 10

connect ok

array

( [0] => array

([id] => 3

[name] => terry

))sleep 10

可以看到閃斷後,pdo_ping()返回false,連線失敗,然後呼叫自動重連,保證後面的查詢能繼續執行。

本文標題: php pdo判斷連線是否可用的實現方法

本文位址:

php PDO判斷連線是否可用的方法

mysql ping 檢查到伺服器的連線是否正常。如果到伺服器的連線可用,則返回true,否則返回false。但pdo不支援mysql ping 方法,因此需要自己編寫 模擬mysql ping 方法,檢查連線是否可用。檢查連線是否可用 param link dbconn 資料庫連線 return ...

Android 判斷網路連線是否可用

判斷流動網路是否開啟 param context return public static boolean isnetenabled context context log.i sjf 流動網路還未開啟 return false 判斷wifi網路是否開啟 param context return p...

判斷網路是否可用

這段 用於判斷網路是否可用,如果不可用則開啟網路設定,設定網路連線,當然也可以忽略設定,即不做處理。connectivitymanager connectmanager connectivitymanager this.getsystemservice connectivity service if...