mysql_query() also returns a resource for "OPTIMIZE TABLE" statements!
(PHP 4, PHP 5)
mysql_free_result — Libera um resultado da memória
$result
): bool
mysql_free_result() irá liberar toda a memória
associada ao identificador de resultado result
.
mysql_free_result() apenas precisa ser chamada se você esta preocupado sobre quanta memória esta sendo usada em consultas que retornam grandes conjuntos de resultados. Toda a memória associada a um resultado é automaticamente liberada ao final da execução do script.
result
O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().
Retorna true
em caso de sucesso ou false
em caso de falha.
Se não for usado um recurso para result
, um
erro de nível E_WARNING será emitido. É importante notar que
mysql_query() apena retorna um resource
para consultas SELECT, SHOW, EXPLAIN, e DESCRIBE.
Exemplo #1 Um exemplo mysql_free_result()
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Não foi possível executar a consulta: ' . mysql_error();
exit;
}
/* Use the result, assuming we're done with it afterwords */
$row = mysql_fetch_assoc($result);
/* Now we free up the result and continue on with our script */
mysql_free_result($result);
echo $row['id'];
echo $row['email'];
?>
Nota:
Para compatibilidade com versões anteriores, o seguinte apelido obsoleto pode ser usado: 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).