«Mysql ожидает, что параметр 2 будет целочисленным, строка указана в типе ошибки» - PullRequest
0 голосов
/ 23 декабря 2018

Получил эту функцию 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;
}

1 Ответ

0 голосов
/ 23 декабря 2018

Второй параметр - это константа, которая преобразуется в целое число.

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

тип результата

Этот необязательный параметрконстанта, указывающая, какой тип массива должен быть получен из данных текущей строки.Возможными значениями этого параметра являются константы MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

Таким образом, вы должны поместить константу в вашу переменную, чтобы у вас было целочисленное значение.И, как в обсуждаемых комментариях, это MYSQLI_ASSOC, а не MYSQL_ASSOC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...