我正在使用PDO从MySQL服务器获取数据。我注意到的是:如果MySQL服务器不可用,这段代码会花费相当长的时间来返回一个异常:
在MySQL中,异常需要超过2分钟才能发生(SQLSTATE [HY000] [2003]无法连接到MySQL服务器...),而在PostgreSQL上需要30秒(SQLSTATE [08006] [7]超时已过期)。
我尝试使用PDO :: setAttribute和PDO :: ATTR_TIMEOUT,但它不起作用。我想这是有道理的,因为问题发生在此语句之前。
有没有一种方法来设置连接到数据库的超时时间? 对于PDO来说,2分钟/ 30秒似乎太长了,以至于它无法意识到什么都没有。
我记得我在某个地方看到过这样做,但我再也找不到它了。
。
try {
$handle = new PDO($db_type . ':host='.$db_host.';dbname='.$db_name,$db_user,$db_pass);
// Tried using PDO::setAttribute and PDO::ATTR_TIMEOUT here
} catch(PDOException $e) {
echo $e->getMessage;
}
在MySQL中,异常需要超过2分钟才能发生(SQLSTATE [HY000] [2003]无法连接到MySQL服务器...),而在PostgreSQL上需要30秒(SQLSTATE [08006] [7]超时已过期)。
我尝试使用PDO :: setAttribute和PDO :: ATTR_TIMEOUT,但它不起作用。我想这是有道理的,因为问题发生在此语句之前。
有没有一种方法来设置连接到数据库的超时时间? 对于PDO来说,2分钟/ 30秒似乎太长了,以至于它无法意识到什么都没有。
我记得我在某个地方看到过这样做,但我再也找不到它了。