elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  dos conexiones a tablas abiertas al mismo tiempo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: dos conexiones a tablas abiertas al mismo tiempo  (Leído 8,435 veces)
OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
dos conexiones a tablas abiertas al mismo tiempo
« en: 16 Julio 2010, 17:50 pm »

Hola a todos :
Quiero tener abiertas dos conexiones a 2 BD distintas alojadas en el mismo servidor (misma contraseña y usuario) de forma que en mi codigo PHP pueda consultar en una y actualizar en base a unos parámetros a otra.
Mi problema es que no consigo mantener estas dos conexiones abiertas al mismo tiempo porque por lo visto no se puede al ser el mismo servidor, usuario y contraseña.

Os pongo el código :
Código:
$conn1['user']       = "admin";
$conn1['password']   = "admin";
$conn1['db']         = "tienda1";
$conn1['server']     = "localhost";
$conn1['type']       = "mysql";

$conn1['link'] =  mysql_pconnect( $conn1['server'], $conn1['user'], $conn1['password']  ) or
die( 'Could not open connection to server' );

mysql_select_db( $conn1['db'], $conn1['link'] ) or
die( 'Imposible conectar con la base de datos '. $conn1['db'] );


$conn2['user']       = "admin";
$conn2['password']   = "admin";
$conn2['db']         = "tienda2";
$conn2['server']     = "localhost";
$conn2['type']       = "mysql";

$conn2['link'] =  mysql_pconnect( $conn2['server'], $conn2['user'], $conn2['password']  ) or
die( 'Could not open connection to server' );

mysql_select_db( $conn2['db'], $conn2['link'] ) or
die( 'Imposible conectar con la base de datos '. $conn2['db'] );


$sQuery = "INSERT INTO producto() VALUES ()";
$result = mysql_query($sQuery, $conn1['link'] );

Pues bien, como resultado sucede que hace un INSERT en la tabla producto de la BD tienda2 en lugar de la tienda1. Luego el indicarle en el insert que la conexión es con $conn1['link'] no hace ni caso.

¿Alguien sabe que puede estar sucediendo?
Necesito dos conexiones abiertas al mismo tiempo porque cómo he dicho voy a consultar constantemente en una BD y agregando a otra. Si lo hiciese cerrando y abriendo conexiones creo que no sería óptimo.
¿Que opináis?
Muchas gracias.




En línea

OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #1 en: 16 Julio 2010, 18:09 pm »

solucionado!!!

Lo he solucionado indicando en el campo 'server' : localhost y en el otro 127.0.0.1


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #2 en: 16 Julio 2010, 21:03 pm »

o.O, no creo que sea la mejor solución. Además tener 2 conexiones que son exactamente las mismas. Creo que deberías de trabajar con POO!

PD: Que pasaría si se necesitaran 3 tablas. 3 Conexion?... Pwn3d!
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #3 en: 16 Julio 2010, 22:02 pm »

de hecho basta con seleccionar una base de datos distinta con la misma conexion no? xD
En línea

Ojo por ojo, y el mundo acabará ciego.
OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #4 en: 17 Julio 2010, 19:33 pm »

en mi caso solo necesito dos conexiones. Lleva razon en el caso que necesitara 3 conexiones a la vez abiertas.
Con POO no veo que ventajas conseguiría porque tendría de todas formas estas dos conexiones abiertas.
Gracias por los consejos.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #5 en: 18 Julio 2010, 19:13 pm »

Sería así, maso menos.


Código
  1. function handler($sDataBase){
  2.  $CNN['Usuario'] = 'root';
  3.  $CNN['Password'] = 'root';
  4.  $CNN['database'] = $sDataBase;
  5.  $CNN['servidor'] = 'localhost';
  6.  $CNN['Tipo'] = 'mysql';
  7.  
  8.  $CNN['Conexion']  = mysql_connect( $CNN['servidor'], $CNN['Usuario'], $CNN['Password']  ) or
  9. die( 'Could not open connection to server' );
  10.  mysql_select_db( $CNN['database'], $CNN['Conexion'] ) or die( 'Imposible conectar con la base de datos '. $conn1['db'] );
  11.  
  12.  return $CNN['Conexion'];
  13. }


Y lo usarías así...
Código
  1. $sResult = mysql_query($sQuery, handler('tienda1') );
  2. $sResult = mysql_query($sQuery, handler('tienda2') );

Notas la diferencia?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #6 en: 20 Julio 2010, 12:11 pm »

la verdad es que se ahorra en código.
Desconocia la función 'handler'
Gracias
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #7 en: 20 Julio 2010, 20:30 pm »

Esa función no existe. La cree YÓ!  :rolleyes:
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #8 en: 20 Julio 2010, 22:21 pm »

upsss perdon, ahora termino de entenderla.
Solo me queda una duda, cada vez que llame a la función me crea una conexión nueva o mira a ver si ya estaba abierta la de antes y la reutiliza?.
Lo digo porque en ese caso tendría que cerrarla antes y despues abrirla y no creo que fuera muy óptimo estar abriendo siempre conexiones, por ese motivo la idea de dejarla abierta hasta que desee cerrarla.
Gracias de nuevo. Utilizaré tu función !! :)
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: dos conexiones a tablas abiertas al mismo tiempo
« Respuesta #9 en: 20 Julio 2010, 22:45 pm »

Bueno, cuando trabajaba en ASPX.NET, tenia una función que verificaba si la conexión estaba abierta o cerrada y de allí realizaba las acciones correspondientes con la conexión. Intenta crearla.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ordenar siguiendo el mismo orden dos tablas independientes
Programación C/C++
AIR13 3 1,971 Último mensaje 23 Enero 2013, 22:23 pm
por leosansan
Foreign Key con mismo nombre de dos tablas diferentes.
Bases de Datos
crksergio 3 3,354 Último mensaje 21 Noviembre 2013, 16:48 pm
por basickdagger
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines