suche nach in der

mysql_get_client_info> <mysql_field_type
Last updated: Fri, 18 May 2012

view this page in

mysql_free_result

(PHP 4, PHP 5)

mysql_free_resultGibt belegten Speicher wieder frei

Beschreibung

bool mysql_free_result ( resource $result )

mysql_free_result() gibt den Speicher frei, der mit result (Ergebnis-Kennung) assoziert ist.

Die Funktion muss nur dann aufgerufen werden, wenn Sie sich bei Anfragen, die große Ergebnismengen liefern, Sorgen über den Speicherverbrauch zur Laufzeit des PHP-Skripts machen. Nach Ablauf des Skripts wird der Speicher ohnehin freigegeben.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Wird für den Parameter result ein Wert angegeben, der nicht vom Typ resource ist, wird ein Fehler der Stufe E_WARNING ausgegeben. Beachten Sie, dass mysql_query() nur eine resource für SELECT, SHOW, EXPLAIN und DESCRIBE Abfragen liefert.

Beispiele

Beispiel #1 Ein mysql_free_result() Beispiel

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
    echo 
'Abfrage konnte nicht ausgeführt werden: ' mysql_error();
    exit;
}
/* Benutze result, unrer der Annahme wir sind hinterher damit fertig */
$row mysql_fetch_assoc($result);

/* Nun geben wir den Speicher für result frei und fahren in unserem Skript fort */
mysql_free_result($result);

echo 
$row['id'];
echo 
$row['email'];
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_freeresult()

Siehe auch



add a note add a note User Contributed Notes
mysql_free_result
21-Nov-2006 11:53
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
Nairebis
26-Feb-2006 03:00
ALWAYS use this function! I just encountered a bug in my code where I forgot to use this function. I also happen to be using mysql_pconnect() for a persistent connection. If you forget to free the result, it can hold the old result set open indefinitely within the HTTP process.

The upshot (in my application) was that I did updates that happened in a different HTTP process, but they mysteriously didn't show up in another HTTP process. After panicking that MySQL had mysterious data corruption and/or synchronization problems, I traced it back to this where an old result set was held open.
mdeininger at jyujin dot de
20-Sep-2005 01:45
yes, i encountered that too. as far as i could tell, that's because the script is stored in memory after being compiled and that's as much more memory as it needs for a call to that function.

if you always get lotsa data in your results, using this function will decrease memory usage tho, unless you use non-buffered queries (which are preferable unless you absolutely *have* to use mysql_seek(), or you need to do another query while the last one hasn't finished reporting back, as they can provide a small speedup)
macronesia at macronesia dot net
02-Jul-2005 09:11
You not need to use this if you are using PHP 4.

The comment below this comment may explain why it's actually costing more memory.
Joachim Kruyswijk
14-Jun-2005 11:42
Using this function may actually increase the amount of memory used. In my case, the script used 208 bytes less memory when *not* using mysql_free_result().
Check for yourself: call memory_get_usage() at the end of the script.

mysql_get_client_info> <mysql_field_type
Last updated: Fri, 18 May 2012