php mysqli能否在连接尝试时设置超时?

php mysqli能否在连接尝试时设置超时?,php,mysql,mysqli,timeout,Php,Mysql,Mysqli,Timeout,您好,我有这行连接到mysql数据库,只是想知道是否有一种方法来设置连接尝试超时?谢谢 $db = new mysqli($server, $usr, $passwd, $dbname); 是的,您可以为尝试使用mysqli从php程序连接到MySQL数据库显式指定超时 不过有点毛茸茸的。当您使用newmysqli()时,您将使用一个可重用连接池。如果要设置超时或任何其他选项,则需要使用real\u connect,如下所示: $timeout = 30; /* thirty seconds

您好,我有这行连接到mysql数据库,只是想知道是否有一种方法来设置连接尝试超时?谢谢

$db = new mysqli($server, $usr, $passwd, $dbname);

是的,您可以为尝试使用mysqli从php程序连接到MySQL数据库显式指定超时

不过有点毛茸茸的。当您使用
newmysqli()
时,您将使用一个可重用连接池。如果要设置超时或任何其他选项,则需要使用
real\u connect
,如下所示:

$timeout = 30;  /* thirty seconds for timeout */
$link = mysqli_init( );
$link->options( MYSQLI_OPT_CONNECT_TIMEOUT, $timeout ) ||
     die( 'mysqli_options croaked: ' . $link->error );
$link->real_connect($server,  $usr, $passwd, $dbname) ||
     die( 'mysqli_real_connect croaked: ' . $link->error );

这里有一个合理的解释:

这太完美了。非常感谢你。对于web应用程序中的数据库事件,我没有解决方案。现在我可以检测超时并切换到从属数据库。干杯在hostgator共享服务器上,它碰巧对我不起作用;然而,知道这一点真的很好。