首页 > 解决方案 > “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;
}

标签: phpmysqli

解决方案


第二个参数是一个解析为整数的常量。

https://secure.php.net/manual/de/mysqli-result.fetch-array.php

结果类型

此可选参数是一个常量,指示应从当前行数据生成哪种类型的数组。此参数的可能值是常量 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。

因此,您必须将常量放入具有整数值的变量中。就像在评论中讨论的那样,它MYSQLI_ASSOC不是MYSQL_ASSOC


推荐阅读