Foros del Web » Programando para Internet » PHP »

mysql_free_result() y mysql_close()

Estas en el tema de mysql_free_result() y mysql_close() en el foro de PHP en Foros del Web. hola a todos los foreros. Me he encontrado con un problema. Yo nunca he utilizado ni mysql_close(), ni mysql_free_result(). He leido un poco sobre el ...
  #1 (permalink)  
Antiguo 19/02/2008, 16:10
 
Fecha de Ingreso: noviembre-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
mysql_free_result() y mysql_close()

hola a todos los foreros.
Me he encontrado con un problema. Yo nunca he utilizado ni mysql_close(), ni mysql_free_result(). He leido un poco sobre el funcionamiento de esta función pero no la se aplicar. ¿Álguíen me podría explicar brevemente la utilización de esta función y de mysql_close()?. ¿Deberia poner en el pie de todas las pagina un pequeño código como este para aligerar memoria?
Código PHP:
<?php
mysql_free_result
();
mysql_close();
?>
Perdonen pero no lo comprendo.
  #2 (permalink)  
Antiguo 19/02/2008, 16:27
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: mysql_free_result() y mysql_close()

mysql_free_result() lo que hace el liberar los cursores que has utilizado en la ejecución de tus consultas por ejemplo

Código PHP:
$conexion mysql_connect("localhost""usuario""password") or die ( "No se ha podido establecer la conexión con el servidor"); 
Código PHP:
$consulta "SELECT * FROM tabla";
$resultado mysql_query$consulta$conexion) or die( mysql_error() );

mysql_free_result($resultado); 
y mysql_close() cierra la conexion actual con tu servidor
Código PHP:
mysql_close$conexion ); 
y si como dices son utilizables con el fin de liberar memoria el teminar la ejecución de los scripts

Saludos.
  #3 (permalink)  
Antiguo 19/02/2008, 16:29
Avatar de tomerqueves  
Fecha de Ingreso: marzo-2005
Ubicación: algeciras (cadiz)
Mensajes: 200
Antigüedad: 19 años, 7 meses
Puntos: 7
Re: mysql_free_result() y mysql_close()

A grandes rasgos...
esa funcion libera un stream ... en un CUBO en terminos fisicos para que me entiendas.
y seguidamente cirra la conexion con la base de datos.

Es basicamente esto.
Abrimos la conexion con la base de datos.
Ejecutamos la consulta que queda guardada en un stream que te comentaba.
recogemos todo lo que necesitemos con la funcion fetch
y seguidamente ceramos la conexion.

Tenemos que liberar con free result para no dejar el cubo lleno
y tenemos que cerrar la conexion porque sino como intentemos abrir otra conexion
nos dice que no se puede porque ya hay una conexion habierta.

Solo documentaté si esas funciones recogen algun parametro
que yo de memoria no lo se.
Un saludo.
Espero haberte ayudado y sino ...
por aquí andamos.
__________________
A todos los moderadores y admiinistradores. Si algun día me banean, por favor devolverme la carita de mi avatar
  #4 (permalink)  
Antiguo 19/02/2008, 16:37
 
Fecha de Ingreso: noviembre-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Re: mysql_free_result() y mysql_close()

muchas gracias a los dos, de verdad, ya me a quedado mucho más claro.
  #5 (permalink)  
Antiguo 19/02/2008, 16:41
 
Fecha de Ingreso: febrero-2007
Mensajes: 74
Antigüedad: 17 años, 9 meses
Puntos: 1
Re: mysql_free_result() y mysql_close()

Trataré de explicarlo yo también xD:

$conexion = mysql_connect(................);
// Tomamos los datos que necesitemos
mysql_close($conexion);

Esto abriría y cerraría la conexión.

mysql_connect(................);
// Tomamos los datos que necesitemos
mysql_close();

Esto haría lo mismo. Si la función mysql_close() si no toma parámetros se aplica sobre la última conexión abierta.

Se pueden abrir varias conexiones a distintas bases de datos sin ningún tipo de error. Las 2 funciones a las que haces referencia no son necesarias, ya que al finalizar la ejecución del script PHP se cierran todas las conexiones y se liberan todas las variables.

Saludos.

Última edición por Rudy_Guillan; 19/02/2008 a las 16:47
  #6 (permalink)  
Antiguo 20/02/2008, 08:14
 
Fecha de Ingreso: noviembre-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Re: mysql_free_result() y mysql_close()

ok ok. En resumen.mysql_close() solo se pone una vez en el pie de la página y mysql_free_result() se pone las veces que quieras en un script.
P.D. En este sencillo código ...
Código PHP:
<?php

$myConsulta 
"SELECT id FROM videos where categoria='Divertidos'";
$myResultado mysql_query($myConsulta) or die(mysql_error());
$myTotal mysql_num_rows($myResultado);
$myConsulta "SELECT juego,id,urlsitio,titulo,descripcion,categoria FROM videos where categoria='Divertidos' ORDER BY $cuso desc LIMIT 5";
$myResultado mysql_query($myConsulta) or die(mysql_error());
while(
$videos mysql_fetch_array($myResultado)) {

    echo 
"";
}
?>
tendría que poner mysql_free_result($myConsulta); después de }, pero si te fijas hya dos querys con la misma variable. Como se cierran las dos; si es necesario claro.
  #7 (permalink)  
Antiguo 20/02/2008, 16:17
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 22 años
Puntos: 4
Re: mysql_free_result() y mysql_close()

Es recomendable abrir cerrar la conexion despues de sacar el resultado y nuevamente conexionar?


O bastaria con al principio de la página conexionamos, y al final del todo liberamos y cerramos?

Un saludo.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

  #8 (permalink)  
Antiguo 20/11/2012, 05:39
 
Fecha de Ingreso: noviembre-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: mysql_free_result() y mysql_close()

Hola! ¿Estaría relacionado con mi problema? ¿Cómo puedo cerrar las conexiones que no me permiten acceder a mi página? ¿dónde tengo que escribir ese código?

Gracias!!

<< ¡Buenas tardes chic@s!
Tengo un pequeño gran problema...y es que al parecer mi web no funciona a veces porque hay demasiadas conexiones a la misma, ¿cómo puedo solucionar esto?

En el soporte técnico del servidor me dicen:

"Cerrar todas las conexiones a la base de datos después de cada consulta y revisar los scripts para que no sobrepasen el número de conexiones con la base de datos"

Pero me quedo igual que si no me dicen nada....¿alguien me ayuda?

Gracias!! >>
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 12:51.