mysql_query() also returns a resource for "OPTIMIZE TABLE" statements!
(PHP 4, PHP 5)
mysql_free_result — Libère le résultat de la mémoire
Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide. Alternatives à cette fonction :
null
à l'objet PDO, ou PDOStatement::closeCursor()$result
): bool
mysql_free_result() libère toute la mémoire et
les ressources utilisées par la ressource de résultat result
.
mysql_free_result() n'est à appeler que si vous avez peur d'utiliser trop de mémoire durant l'exécution de votre script. Toute la mémoire associée à l'identifiant de résultat sera automatiquement libérée.
result
La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Si la valeur passée à l'argument result
n'est
pas une ressource, une erreur de niveau E_WARNING
sera émise. Il est important de noter que la fonction
mysql_query() retourne uniquement une
ressource pour les requêtes SELECT
,
SHOW
, EXPLAIN
et DESCRIBE
.
Exemple #1 Exemple avec mysql_free_result()
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
/* Utilisation du résultat */
$row = mysql_fetch_assoc($result);
/* Maintenant, nous libérons le résultat et continuons notre script */
mysql_free_result($result);
echo $row['id'];
echo $row['email'];
?>
Note:
Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : 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).