【发布时间】:2025-12-19 11:45:12
【问题描述】:
我有这条线可以连接到 MySQL 数据库,只是想知道是否有办法为连接尝试设置超时?
$db = new mysqli($server, $usr, $passwd, $dbname);
【问题讨论】:
我有这条线可以连接到 MySQL 数据库,只是想知道是否有办法为连接尝试设置超时?
$db = new mysqli($server, $usr, $passwd, $dbname);
【问题讨论】:
是的,您可以为尝试使用 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 );
这里有一个不错的解释:https://php.net/manual/en/mysqli.real-connect.php
【讨论】: