使用PHP检查是否可以在短时间内从本地应用程序访问MySql在线服务器
我有一个基于PHP的localweb应用程序,它使用一个在线Mysql服务器 我需要知道我什么时候可以到达那个服务器(我什么时候可以连接互联网,或者服务器什么时候关闭) 我试过这个使用PHP检查是否可以在短时间内从本地应用程序访问MySql在线服务器,php,mysql,mysqli,connection,Php,Mysql,Mysqli,Connection,我有一个基于PHP的localweb应用程序,它使用一个在线Mysql服务器 我需要知道我什么时候可以到达那个服务器(我什么时候可以连接互联网,或者服务器什么时候关闭) 我试过这个 $conn = new mysqli('hostname','username','password','db'); if($conn->connect_error){ //offline action } else{ //online action } 它可以工作,但需要大约一分钟来确定服
$conn = new mysqli('hostname','username','password','db');
if($conn->connect_error){
//offline action
}
else{
//online action
}
它可以工作,但需要大约一分钟来确定服务器是否可以访问
我想知道是否有任何其他解决方案可以持续不到3或4秒。检查服务器是否首先返回响应,您可以使用
fsockopen()
,但也可以使用其他方法,如使用,以便ping
function is_connectable(string $host, int $port=80, int $timeout=3){
if($fp = @fsockopen($host, $port, $errno, $errstr, $timeout)){
return fclose($fp) || true;
}
return false;
}
$host = "mysql.someserver.com";
$port = 3306;
$user = "username";
$pass = "mypassword";
$mydb = "mydatabase";
if(is_connectable($host, $port)){
try{
$pdo = new PDO("mysql:host=$host;port=$port;dbname=$mydb", $user, $pass);
} catch(Exception $e){
die($e->getMessage());
}
} else {
die("mysql server '$host' is down");
}
还可以直接使用数据库驱动程序的超时:
- 对于PDO
- 对于MySQLi