ScotlandPHP

mysql_free_result

(PHP 4, PHP 5)

mysql_free_resultОсвобождает память от результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

bool mysql_free_result ( resource $result )

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() - Посылает запрос MySQL
  • is_resource() - Проверяет, является ли переменная ресурсом

add a note add a note

User Contributed Notes 3 notes

up
11
webmaster at bluesting dot co dot za
6 years ago
mysql_query() also returns a resource for "OPTIMIZE TABLE" statements!
up
3
admin at ifyouwantblood dot de
9 years ago
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).
up
-22
Anonymous
10 years ago
If you're seeing warnings like "Warning: Unknown: 6 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0" and want to turn them off, set mysql.trace_mode = Off in your php.ini
To Top