3

我正在使用 PHP 和 PDO 对象连接到 mysql。我有 3 个数据库服务器,我的 php 代码可以连接到这些服务器。如果我尝试连接到 DB 服务器 #1 并且连接失败,我想立即尝试连接到 DB 服务器 #2。我可以使用下面的代码设置连接超时时间的最低值是 1 秒。

$DBH = new PDO("mysql:host=$host;dbname=$dbname", $username, $password,array(PDO::ATTR_TIMEOUT => "1",PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

理想情况下,我想将超时时间设置为 <50 毫秒。或者如果可能的话 0ms。有没有办法做到这一点?

4

2 回答 2

7

这是不可能的,因为底层的 MySQL 驱动程序不允许这样做:

请求 #60716:能够以毫秒为单位设置 PDO 连接超时

于 2013-04-15T13:44:42.670 回答
0

我认为使用毫秒设置超时是不可能的。参考php doucmnetationmysql.connect_timeout

mysql.connect_timeout:

以秒为单位的连接超时。在 Linux 上,此超时也用于等待来自服务器的第一个答复。

顺便说一句,我觉得你要做的事情对我来说听起来有点老套。如果您有专业要求,我会使用负载均衡器。你可以按照这个教程

于 2013-04-15T13:48:27.510 回答