php mysqli可以在连接尝试时设置超时吗?

时间:2014-11-06 16:29:23

标签: php mysql mysqli timeout

您好这条线路连接到mysql数据库,只是想知道是否有办法为连接尝试设置超时?感谢。

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

1 个答案:

答案 0 :(得分:11)

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

但是,它有点毛茸茸。使用new mysqli()时,使用可重用连接池。如果您要设置超时或任何其他选项,则需要使用real_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;

这里有一个不错的解释:http://php.net/manual/en/mysqli.real-connect.php