Foros del Web » Programando para Internet » PHP »

Multiples conexiones a mysql

Estas en el tema de Multiples conexiones a mysql en el foro de PHP en Foros del Web. Tengo una duda sobre el funcionamiento de las conexiones a MySql. Me he dado cuenta, de que si yo tengo una conexion establecida a una ...
  #1 (permalink)  
Antiguo 11/02/2008, 03:35
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 4 meses
Puntos: 0
Multiples conexiones a mysql

Tengo una duda sobre el funcionamiento de las conexiones a MySql.

Me he dado cuenta, de que si yo tengo una conexion establecida a una tabla concreta con usuario y contraseña especificos y mas tarde (en la misma linea de proceso) intento realizar otra conexión IGUAL (misma tabla, usuario y contraseñas) realmente no se realiza una nueva conexión sino que se coje el identificador creado anteriormente y se usa ese.

Simplemente por curiosidad... es posible obligar a php a crear una nueva?
Se que puede ser tonteria y que quizás no sirva para nada, lo sé. Solo quiero saber si es posible (y ya de paso como).
  #2 (permalink)  
Antiguo 11/02/2008, 04:34
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Re: Multiples conexiones a mysql

si la cierras si, con mysql_close()
  #3 (permalink)  
Antiguo 11/02/2008, 04:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Multiples conexiones a mysql

Si bueno, se me olvidó matizar eso...


es posible sin tener que cerrar la conexión?
  #4 (permalink)  
Antiguo 11/02/2008, 05:35
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Multiples conexiones a mysql

Mmmmmmmm declarando DOS variables de conexión completamente diferentes continua empleando el mismo identificador?

Saludos
  #5 (permalink)  
Antiguo 11/02/2008, 05:48
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Multiples conexiones a mysql

Posi.
Esta duda me viene al ocurrirme el siguiente error:

Uso una clase para la conexión con la base de datos y realizar sus consultas.
Cuando creo un objeto de esta clase, automaticamente se conecta a la tabla indicada por el constructor:
Código PHP:
$bd = new model'localhost''base_datos''tabla''usuario''contraseña' ); 
Hasta ahora, dentro del destructor de la clase tenia un mysql_close() que cerraba la conexión abierta dentro del objeto (le proporcionaba el link que devuelve mysql_connect().
Pero hoy me ha ocurrido que en una pagina creaba dos objetos con los mismos datos de conexión (desde funciones diferentes) y lo que ha ocurrido es que el segundo objeto no ha podido realizar la consulta ya que el primer objeto estaba destruido y por lo tanto habia cortado la conexión.

Código PHP:
function UNO()
{
     
$bd = new model'localhost''base_datos''tabla''usuario''contraseña' );
     
funcion_DOS();
     
$bd->consulta'blablablabla' );
}

function 
funcion_DOS()
{
     
$bd2 = new model'localhost''base_datos''tabla''usuario''contraseña' );
     
$bd2->consulta'blablablabla' );

"Debugueando" vi que ambos objetos compartían el mismo "resource link".

Para solucionar el problema he eliminado la desconexión de mysql en el destructor.
Por si alguien pregunta, la variable donde almaceno el enlace no es static (no se si se llama así a las variables que comparten valor a través de multiples instancias de una clase).

Última edición por clinisbut; 11/02/2008 a las 05:49 Razón: poner etiquetas PHP a codigo.
  #6 (permalink)  
Antiguo 11/02/2008, 09:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Multiples conexiones a mysql

Por defecto mysql_connect, si tu le pasas los mismos datos de conexión te devuelve el mismo link que tiene activo.

Esto lo hace para optimizar las conexiones y no llenar el server de conexiones no necesarias.

Si tu quieres un nuevo link, el ultimo parámetro para mysql_connect es un booleano que si es true, te devuelve una nueva conexión aunque sea con los mismos datos.

Saludos.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




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