mysqli_free_result (), возвращая предупреждение - PullRequest
0 голосов
/ 28 марта 2012

Следующий метод делает свою работу, но продолжает выводить предупреждение, я довольно новичок в ООП, поэтому я хотел бы знать, почему именно.

Я немного погуглил, и, похоже, мне нравится, когда я смешиваю процедурное с ООП, которое выдает предупреждение, по крайней мере из ответов, которые я читал в другом месте, по крайней мере.

Код:

function __construct(){
    global $connection;

    $mysqli_result=$connection->query("select module from modules");
    while($row=$mysqli_result->fetch_row()){
        $this->whitelist[]=$row[0];
    }
    mysqli_free_result($row);
    return;
}

Предупреждение:

mysqli_free_result() expects parameter 1 to be mysqli_result, null given in.....

Я был бы признателен, если бы кто-нибудь пролил свет на это, если это возможно.

1 Ответ

1 голос
/ 28 марта 2012

Вы используете MySQLi в объектно-ориентированном виде, , и вы не можете использовать процедурные функции с ним неправильно, см. Edit .Вы должны сделать:

$mysqli_result->free()

... вместо.

Даже если вы использовали процедурный подход, то, что вы сделали, неверно, потому что fetch_row() возвращает массив, а mysqli_free_result() ожидал бы ресурс результата - вам нужно было бы сделать:

mysqli_free_result($mysqli_result);

... но для вашего кода, первым примером является то, что вы хотите.

РЕДАКТИРОВАТЬ

На самом деле, после тестирования вы можете использовать и второй вариант.Но, тем не менее, первый вариант лучше всего подходит для вашего кода.

...