Foros del Web » Programando para Internet » PHP »

mysql_free_result

Estas en el tema de mysql_free_result en el foro de PHP en Foros del Web. Buenas, normalmente uso mysql_free_result siempre que hago una consulta donde selecciono mas de un campo ya que utilizo mysql_fetch_array, pero cuando solo selecciono un campo ...
  #1 (permalink)  
Antiguo 19/08/2011, 12:09
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
mysql_free_result

Buenas, normalmente uso mysql_free_result siempre que hago una consulta donde selecciono mas de un campo ya que utilizo mysql_fetch_array, pero cuando solo selecciono un campo para recuperar ese valor uso mysql_result($q, 0).

Algo asi:
Código PHP:
$q mysql_query("SELECT ID FROM tabla WHERE CAMPO = 1 LIMIT 1");
    if(
mysql_num_rows($q) > 0){
    
$idMov mysql_result($q0);


En ese caso tb es recomendable usar mysql_free_result? mysql_result no hace un free_result no?

Otro caso en el que tengo dudas es cuando haces un COUNT(ID), ejemplo:
Código PHP:
]
$q mysql_query("SELECT COUNT(ID) FROM tabla WHERE CAMPO = 1");
$total mysql_result($q0); 
Ahi tb es recomendable usar mysql free result o en los counts no hace falta??

Saludos!
  #2 (permalink)  
Antiguo 19/08/2011, 12:16
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: mysql_free_result

La verdad, mysql_free_result no es necesario para nada. Cuando PHP termina de procesar la pagina cierra todos los recursos.
  #3 (permalink)  
Antiguo 19/08/2011, 12:37
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: mysql_free_result

Eso es seguro 100%?

Hace un tiempo, cuando hice mi primera pagina web, en el servidor de bluehost se quedaba colgada. Ellos me dijeron que era por que mis scrips no cerraban bien las conexiones. Leyendo por ahi cojí la costumbre de usar siempre el mysql_free_result.

Yo tb pensaba como tu pero despues de tanto mirar sobre el tema lo uso siempre... aunque puede que no haga falta como comentas. Incluso he llegado a pensar de usar mysql_close(), cosa que no me entra en la cabeza que el server no lo haga automaticamente si no son conexiones persistentes, pero el soporte del hosting decia que era una buena practica...

En fin, lo unico que recuerdo es que la CPU se consumia cada dia xD.
  #4 (permalink)  
Antiguo 19/08/2011, 12:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: mysql_free_result

Según el manual:

Cita:
mysql_free_result() solo necesita ser llamado si usted está preocupado por la cantidad de memoria que está siendo usada por las consultas que devuelven conjuntos de resultados grandes. Toda la memoria de resultados asociados se liberará automaticamente al finalizar la ejecución del script.
mysql_free_result()
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 19/08/2011, 12:56
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: mysql_free_result

Exacto es tal cual dice andresdzphp

El problema sería si el script hace muchísimas consultas y devuelve gran cantidad de información. Serían casos un poco extremos, pero podría darse.
No obstante por utilizarlo tampoco pasa nada
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 19/08/2011, 13:07
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: mysql_free_result

Vale, entonces deduzco por vuestras respuestas que en los casos que yo he expuesto incialmente tb seria "bueno" usarlo no?
  #7 (permalink)  
Antiguo 19/08/2011, 13:11
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: mysql_free_result

Cita:
Iniciado por leif_sk8er Ver Mensaje
Vale, entonces deduzco por vuestras respuestas que en los casos que yo he expuesto incialmente tb seria "bueno" usarlo no?
Da lo mismo si lo usas o no... Es mas para una cosa tan sencilla yo en lo personal no lo utilizaria.... pero si haces una consulta donde el resultado son 5000000000000 registros pues que crees que sera mejor usarlo o no ?

Pero para traer 1 registro o un numero (count) a mi me parece "matar una mosca a cañonazos" y que conste que ESA FRASE NO ES MIA... :)
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 20/08/2011, 10:35
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: mysql_free_result

Muchas gracias a todos. Entonces siempre que no use un limit lo usaré. Auqnue tb es cierto, como comentan mas arriba, que por usarlo no pasa nada. Tb creo que es bueno acostumbrarse a usarlo mecanicamente, le veo mas beneficios que contras.

Gracias.
  #9 (permalink)  
Antiguo 22/08/2011, 13:50
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: mysql_free_result

Bueno a mi me pasa lo siguiente... cuando uso varias consultas en una misma pagina siempre al final uso mysql_free_result y algunas veces me da error. Pienso que lo que pasa es que ya el servidor las borró automaticamente y al momento de ejecutar el comando, ya las variables estan vacías...

Entonces lo que hice fue utilizar el mysql_free_result inmediatamente que termino de utilizar las variables y no al final de la página como me habia acostumbrado...

Asi que yo tambien estoy de acuerdo con lo de "con usarlo no pasa nada".

Saludos
  #10 (permalink)  
Antiguo 30/08/2011, 09:11
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: mysql_free_result

angabri si te da error es por que o ya la habias finalizado, o no existia ese enlace al mysql_query, posiblemente por que si lo has puesto en el footer se ejecutara en todos lados y algunas paginas puede que no usen esa consulta, o tan siquiera consultas.

De todas formas la forma mas correcta es tras terminar de usar la consulta, ya que asi libera al instante. Si liberas al final y por lo que fuera en ese mismo script tubieses tantas consultas o resultados que colapsases la memoria la estarias colapsando con cosas que ya no usas, por que liberas al final.

Etiquetas: mysql, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:17.