php - MYSQLI_OPT_CONNECT_TIMEOUT,mysqli 选项不起作用
问题描述
我收到以下警告
警告:mysqli::options() 期望参数 1 很长,字符串在 ...
使用此代码时:
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 300);
我正在尝试运行一个执行时间超过 1 分钟的查询。所以我想增加连接超时。连接是这样的:
$mysqli = mysqli_init( );
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 300);
$mysqli->options(MYSQLI_OPT_READ_TIMEOUT, 300);
if (!$mysqli->real_connect($GLOBALS['ipServer'], $GLOBALS['mysqlLogin'], $GLOBALS['mysqlPwd'], $GLOBALS['db'])) {
die("Error connecting to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error);
exit();
}
似乎 mysqli 选项不起作用。有任何想法吗?
解决方案
您应该启用所有 PHP 错误,因为您可能会收到通知,例如:
注意:使用未定义的常量 MYSQLI_OPT_CONNECT_TIMEOUT – 假定为“MYSQLI_OPT_CONNECT_TIMEOUT”
这表明该常量未定义(可能您的 MySQLi 扩展不支持它),并且 PHP 将其视为一个字符串,包含MYSQLI_OPT_CONNECT_TIMEOUT
. 所以你看到的警告是正常的。
尝试转储所有常量,使用get_defined_constants()
, 查看定义了哪些常量。您也可以尝试使用 PHP 手册中提供的整数值(这不是一个很好的建议,但加上正确的注释,这将是有意义的)。
但这归结为您的 MySQLi 扩展是否支持它。
推荐阅读
- android - 除了 onCreate 方法之外,无法更改视图的可见性
- shell - 如何将“图像查找 -v 地址”结果存储在变量中?
- sql - 使用 SQL API 选择 * 除了 Cosmos DB 中的特定属性
- r - 在ggplot中自定义并排(闪避)条形图的颜色
- javascript - API 调用中的某些数据在反应项目中返回错误
- webgl - 什么是drawBuffers?
- javascript - 背景图像在缩放时被裁剪 - 有没有办法避免图像被裁剪?
- plugins - 创建 VST 插件
- sql - 如何在laravel中获取一年中每个月的数据计数?
- swift - 如何在 TVOS 中聚焦自定义视图的每个元素