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

spa*_*mix 4 php mysql mysqli timeout

嗨,我这条线连接到mysql数据库,只是想知道是否有办法设置连接尝试的超时?谢谢.

$db = new mysqli($server, $usr, $passwd, $dbname);
Run Code Online (Sandbox Code Playgroud)

O. *_*nes 12

是的,您可以使用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 );
Run Code Online (Sandbox Code Playgroud)

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