mysql_query() also returns a resource for "OPTIMIZE TABLE" statements!
(PHP 4, PHP 5)
mysql_free_result — Освобождает память от результата запроса
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
null
переменной PDO объекта, или PDOStatement::closeCursor()$result
): bool
mysql_free_result() высвободит всю память, занимаемую
результатом, на который ссылается переданный дескриптор
result
.
mysql_free_result() нуждается в вызове только в том случае, если вы всерьёз обеспокоены тем, сколько памяти используют ваши запросы к БД, возвращающие большое количество данных. Вся память, используемая для хранения этих данных автоматически очистится в конце работы скрипта.
result
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Если в качестве параметра result
передан
не ресурс, то будет вызвана ошибка уровня E_WARNING. Стоит также
заметить, что mysql_query() возвращает
resource только для запросов SELECT, SHOW,
EXPLAIN и DESCRIBE.
Пример #1 Пример использования mysql_free_result()
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Не удалось выполнить запрос: ' . mysql_error();
exit;
}
/* Используем результат, подразумевая, что после этого он нам больше не нужен */
$row = mysql_fetch_assoc($result);
/* Теперь освобождаем результат и продолжаем дальнейшую работу над нашим скриптом */
mysql_free_result($result);
echo $row['id'];
echo $row['email'];
?>
Замечание:
Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_freeresult()
mysql_query() also returns a resource for "OPTIMIZE TABLE" statements!
yes this function may increase the memory usage if you use unbuffered querys and if you have not fetched all the data from mysql. in this case the mysql api has a problem: you want to free the result but do not want to close the connection. now mysql will only accept another query if all data has been fetched, so the api now must fetch the rest of the data when calling mysql_free_result().
so only use unbuffered querys if you fetch all the data (and need it).