mysql_query() also returns a resource for "OPTIMIZE TABLE" statements!
(PHP 4, PHP 5)
mysql_free_result — Gibt belegten Speicher wieder frei
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen bietet der Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:
null
dem PDO-Objekt zuweisen oder PDOStatement::closeCursor()$result
): bool
mysql_free_result() gibt den Speicher frei, der mit
result
(Ergebniskennung) verknüpft 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.
result
Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().
Gibt bei Erfolg true
zurück. Bei einem Fehler 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 Ressource für SELECT-, SHOW-, EXPLAIN- und DESCRIBE-Abfragen
zurückgibt.
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;
}
/* Verwende result, unter 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'];
?>
Hinweis:
Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: 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).