php - “Mysql 期望参数 2 为整数,字符串中给出”类型的错误
问题描述
得到了这个抛出错误的 MySQL 函数,因为我清楚地得到了已弃用的 MySQL 中的原始代码,所以必须转换为 mysqli 兼容的语言,但是下面的这个错误让我陷入了僵局
mysqli_fetch_array() 期望参数 2 是整数,第 91 行给出的字符串
第 91 行相当于
while ($row = mysqli_fetch_array($res, $arr_type))
下面的代码。
function getAll($query, $arr_type = MYSQL_ASSOC) {
if (! $query)
return array();
if ($arr_type != MYSQL_ASSOC && $arr_type != MYSQL_NUM && $arr_type != MYSQL_BOTH)
$arr_type = MYSQL_ASSOC;
$res = $this->res($query);
$arr_res = array();
if ($res) {
while ($row = mysqli_fetch_array($res, $arr_type))
$arr_res[] = $row;
mysqli_free_result($res);
}
return $arr_res;
}
解决方案
第二个参数是一个解析为整数的常量。
https://secure.php.net/manual/de/mysqli-result.fetch-array.php
结果类型
此可选参数是一个常量,指示应从当前行数据生成哪种类型的数组。此参数的可能值是常量 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。
因此,您必须将常量放入具有整数值的变量中。就像在评论中讨论的那样,它MYSQLI_ASSOC
不是MYSQL_ASSOC
。
推荐阅读
- php - 从具有多个对象的表单中保存数据
- awk - 如果文件之间的第一个字段匹配,则将下一行替换为其他文件中的第二个字段
- python - 从正则表达式中的字符开始跳过
- angular - tabIndex 不适用于 mat-tab (Angular 7)
- c# - 如何计算 varchar 列的行数并返回一个整数?
- asp.net - 安装 Microsoft.AspNet.SignalR Nuget 包后无法加载文件或程序集问题
- sql - 资源不足,无法在池快速通道上执行计划
- go - golint 对 JetBrains GoLand 的支持
- html - CSS:四面八方的强填充
- c - 使用 64 位扩展编译 disksim4 时出现链接器错误