Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

liberer la memoire apres un inse rt ou update ?

7 réponses
Avatar
Jean-Francois Ortolo
Bonjour

Je fais des update et des insert:

unset($res);
$res = @mysql_query("INSERT ou UPDATE ...");
if(!$res) {
echo "message d'erreur\n";
exit;
}

Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT, libérer
la mémoire en faisant un: mysql_free_result($res) après les mysql_query( )

Merci beaucoup de vos réponses.

Bien à vous.

Amicalement.

Jean-François Ortolo

--
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux:
http://www.ortolojf-courses.com

7 réponses

Avatar
Mickael Wolff

unset($res);
$res = @mysql_query("INSERT ou UPDATE ...");
if(!$res) {
echo "message d'erreurn";
exit;
}


Pourquoi libères-tu avant ?
Si tu fais un exit ici, fais un die, c'est équivalent à echo + exit.

Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT, libérer
la mémoire en faisant un: mysql_free_result($res) après les mysql_query( )


Oui, mais après avoir exploité les résultats, hein ;)

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Avatar
Alves Michael
Bonjour

Je fais des update et des insert:

unset($res);
$res = @mysql_query("INSERT ou UPDATE ...");
if(!$res) {
echo "message d'erreurn";
exit;
}

Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT, libérer
la mémoire en faisant un: mysql_free_result($res) après les mysql_query( )



Tu ne dois utiliser mysql_free_result() que pour libérer les ressources
créées à partir des requêtes de types SELECT, SHOW, DESCRIBE, EXPLAIN.

Avatar
Jean-Francois Ortolo
Mickael Wolff wrote:


unset($res);
$res = @mysql_query("INSERT ou UPDATE ...");
if(!$res) {
echo "message d'erreurn";
exit;
}



Pourquoi libères-tu avant ?
Si tu fais un exit ici, fais un die, c'est équivalent à echo + exit.



Je ne libère pas la mémoire avant.

Je me contente de faire en sorte que la variable $res ne soit pas
définie avant le mysql_query( ), par habitude de maniaque de la propreté
du code.

Quant à exit au lieu de die, la seule différence est le message
paramètre de die, moi j'envoie ce message avant avec echo. Toujours le
codeur maniaque.


Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT, libérer
la mémoire en faisant un: mysql_free_result($res) après les mysql_query( )



Oui, mais après avoir exploité les résultats, hein ;)



Merci beaucoup.

Je croyais, que mysql_free_result, ne concernait que les
mysql_query() d'instructions SQL SELECT, qui alimentent la mémoire,
parfois de façon conséquente. Encore que réellement, c'est plutôt les
fonctions mysql_fetch... et apparentées qui occupent la mémoire, mais bon...

Donc, je vais pouvoir nettoyer la mémoire systématiquement, après
des INSERT ou des UPDATE. Chouette, j'ai la conscience tranquille,
maintenant.

Merci beaucoup pour votre réponse.

Bien à vous.

Amicalement.

Jean-François Ortolo

--
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux:
http://www.ortolojf-courses.com


Avatar
Alves Michael

Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT, libérer
la mémoire en faisant un: mysql_free_result($res) après les mysql_query( )


Oui, mais après avoir exploité les résultats, hein ;)



Il n'y a pas grand chose à exploiter après un INSERT ou un UPDATE. La
doc PHP indique que mis à part les requêtes de types SELECT, SHOW,
DESCRIBE, EXPLAIN le mysql_free_result n'est pas nécéssaire.


Avatar
Jean-Francois Ortolo
Alves Michael wrote:

Bonjour

Je fais des update et des insert:

unset($res);
$res = @mysql_query("INSERT ou UPDATE ...");
if(!$res) {
echo "message d'erreurn";
exit;
}

Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT,
libérer la mémoire en faisant un: mysql_free_result($res) après les
mysql_query( )



Tu ne dois utiliser mysql_free_result() que pour libérer les ressources
créées à partir des requêtes de types SELECT, SHOW, DESCRIBE, EXPLAIN.



Bonjour Monsieur

Merci beaucoup pour votre réponse.

Bien à vous.

Amicalement.

Jean-François Ortolo

--
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux:
http://www.ortolojf-courses.com


Avatar
Mickael Wolff

Il n'y a pas grand chose à exploiter après un INSERT ou un UPDATE. La
doc PHP indique que mis à part les requêtes de types SELECT, SHOW,
DESCRIBE, EXPLAIN le mysql_free_result n'est pas nécéssaire.


Si j'étais de mauvaise fois, je m'en sortirais avec une pirouette en
disant que c'était exactement ce que je voulais dire par « exploitation
du résultat » ;) Mais effectivement, je libérais true ou false de mes
mysql_query systématiquement. Ce qui est donc une erreur.

Merci de la correction !

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Avatar
John GALLET
Bonjour,

Je voudrais savoir s'il faut aussi pour les UPDATE et INSERT, libérer
la mémoire en faisant un: mysql_free_result($res) après les mysql_query( )


Non ça n'a pas de sens. (Re)lire plus particulièrement le point 9.4 du
cours que je diffuse sur http://www.saphirtech.com/cours_php.html

(Ducros, décarcasse, toussa ;-)...)

C'est aussi pour cette raison que mysql_num_rows() accepte en argument un
buffer de résultats renvoyé par mysql_query() et que mysql_affected_rows()
accepte en argument le handler de connexion.

a++;
JG