php - при использовании mysqli_fetch_assoc (результат), что происходит с результатом? - PullRequest
1 голос
/ 26 ноября 2009

Когда у меня что-то вроде этого:

$row = mysqli_fetch_assoc($result);

Есть ли в $ result теперь на одну строку меньше? Если я переберу mysqli_fetch_assoc через все $result, будет ли он после этого пустым?

Ответы [ 3 ]

5 голосов
/ 26 ноября 2009

$result - это ссылка на набор результатов SQL, который содержит все строки, возвращаемые в ответ на ваш запрос.Вызов mysqli_fetch_assoc просто перемещает внутренний указатель результирующего набора дальше вниз по списку строк, в конечном итоге указывая на NULL (конец списка).Все строки все еще там, вы не удалили ни одну из них: вы просто просмотрели список и можете снова просмотреть их, используя что-то вроде mysqli_data_seek для сброса внутреннего указателя на конкретную строку.

Чтобы очистить $result, вам нужно вызвать mysqli_free_result, чтобы "освободить" набор результатов.

3 голосов
/ 26 ноября 2009

$ result является указателем ресурса , к нему невозможно добавить или удалить данные. Это даст вам результат и внутренне перейдет к следующей записи. Результат как таковой остается нетронутым.

Страница руководства предоставляет дополнительную информацию.

1 голос
/ 26 ноября 2009

После выполнения этой строки $result остается указателем ресурса и может использоваться другими функциями, где это применимо, для дальнейшей обработки с $result как ссылкой на базу данных.

Вы можете либо сбросить его, либо mysqli_free_result($result);

См .: http://php.net/manual/en/mysqli-result.free.php

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