Duda al cerrar la conexion mysql desde php

Iniciado por mit, 21 Diciembre 2008, 22:08 PM

0 Miembros y 1 Visitante están viendo este tema.

mit

Hola colegas...
Estoy haciendo un script en php en el cual voy a ocupar inserciones, actualizaciones, borrados, consultas, etc. El caso es que quiero crear un archivo php, el cual contenga los datos necesarios  para realizar la conexion a la base de datos.

config.php
$host = "localhost";
$nombre_usuario = "mit19t";
$password = "mdfdfdfs345";
$base_datos = "mi_base_de_datos";
$con = mysql_connect($host, $nombre_usuario, $password) or die("Cannot Connect");
mysql_select_db($base_datos, $con);

Tengo otro archivo llamado registro.php

include "config.php";
// Hago mis registro


La duda radica en, puedo cerrar la conexion que abri en config.php desde registro.php con mysql_close() ???

Necesito forsozamente pasar el parametro con que esta dentro de config.php ??

La idea es que quiero solamente crear la conexion en un solo archivo php, para despues cada que use la base de datos, llamar a este archivo ocuparlo y cerrar la conexion, hay algo mas facil o practico???

PD: La optimizacion me interesa muchisimo, por eso mismo no use la clase DBALL.ini de un amigo de aqui del foro, ademas de que no migrare mi base de datos, solo trabajare con mysql


Espero que puedan ayudarme.
Saludos amigos y gracias ;)

LuffyFF

CitarLa duda radica en, puedo cerrar la conexion que abri en config.php desde registro.php con mysql_close() ???
Sin problemas.

CitarNecesito forsozamente pasar el parametro con que esta dentro de config.php ??
No hace falta. Puedes pasar $con que es el mysql_connect, al mysql_close de registro.php, y se cerraría. pero lo pondrías mysql_close($con); y asi de simple. Sin agregar nada más, salvo el include al principio hacia el config. De todas formas, si pones mysql_close();, sin pasar ningún argumento, es válido tambíen y cerrará todas las conexiones.


Asi como hiciste, es como usan la mayoría de los scripts, para no tener que repetir codigo.

mit

Ya te entendi hermano y muchas gracias, ya recorde que por ejemplo si hago un include "config.php" tendria acceso a los atributos y metodos que contenga config.php, es por eso que puedo cerrar la conexion sin problemas, es decir: mysql_close() y listo. Se me habia pasado ese dato tan importante, es que a penas y empiezo con el php.

Por ultimo para aprovechar el post.
Mi script se basa en en que mientras el usuario este logueado ( te hablo de miles de usuarios ) puede realizar consultas y updates, vale la pena realmente cerrar la conexion cada vez que el usuario hace uso de la base de datos o es mejor solo cerrar la conexion cuando el usuario se desloguie ??

Que es mas optimo?

Saludos y gracias nuevamente  ;)


LuffyFF

CitarMi script se basa en en que mientras el usuario este logueado ( te hablo de miles de usuarios ) puede realizar consultas y updates, vale la pena realmente cerrar la conexion cada vez que el usuario hace uso de la base de datos o es mejor solo cerrar la conexion cuando el usuario se desloguie ??

Que es mas optimo?

Tienes que cerrar SI o SI para optimizar. Porque la conexion a la base de datos no se cierra normal, sino por un timeout, y como cada pagina hace una sesión nueva.

Por ejemplo si no pones mysql_close()
Usuario Pepito se loggea, entonces se hace una conexión a SQL... y luego va a editar su perfil, se hace otra conexión, cuando guarda los datos se hace otra conexión... Entonces ya tendrías como 3 conexiones abiertas por el mismo visitante, y aunque se haya salido de la pagina anterior, eso no se cierra solo y sigue abierta la conexion, solo porque no haz cerrado las sesiones anteriores cuando termino de cargar la página. Y ahi ya vas a petar todo el servidor mysql. O vas a usar tu limite de conexiones concurrentes por usuario.

En fin, tienes que poner el mysql_close en el final de cada pagina que haga una conexión, porque asi cuando termina de cargar la página se cierra la conexión y no se queda abierta. Ya que al cambiar de pagina, no se continua la misma conexión, sino que se crea otra.

Asi que no es cuestión de "vale la pena", sino que lo vas a tener que cerrar si o si.

mit

CitarYa que al cambiar de pagina, no se continua la misma conexión, sino que se crea otra.

Asi que no es cuestión de "vale la pena", sino que lo vas a tener que cerrar si o si.

Diste en el clavo amigo, habia pensado que se seguia la misma sesion, pero ya veo que no, se crea otra y otra.

Muchas gracias por la descripcion detallada que me diste, me ha sido de gran utilidad

Saludos  :)