SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: oswaldorivera en Viernes 29 de Mayo de 2009, 17:37

Título: Conectarse simultaneo a dos servidores MySQL
Publicado por: oswaldorivera en Viernes 29 de Mayo de 2009, 17:37
Hola todos, soy nuevo en el foro, gracias de antemano por ayudar.

Tengo una aplicación Web con base de datos MySQL en un servidor WAMP (local). Por otro lado tengo una página Web por donde los clientes ven el historial de sus transacciones y registran algunos datos, con base de datos en el hosting (remoto). La mayoría de los procesos de actualización en de datos en ambas direcciones, local -> remoto / remoto -> local, las tengo resueltas con conexiones a cada servidor por separado.

Hay un proceso en particular en el que requiero estar leyendo de manera simultanea ambas bases de datos, es decir, tener dos conexiones abiertas en simultáneo. Se puede hacer esto?

Yo me lo imagino así, pero no se si estoy en lo correcto:
LOCAL:
$hostname_local= "localhost";
$database_local = "dblocal";
$username_local = "userlocal";
$password_local = "mipassw";
$ConexLocal = mysql_pconnect($hostname_local, $username_local, $password_local) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_local, $ConexLocal);

REMOTA:
$hostname_online= "miservidor.net";
$database_online = "dbonline";
$username_online = "useronline";
$password_online = "mipassw2";
$ConexOnline = mysql_pconnect($hostname_online, $username_online, $password_online) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_online, $ConexOnline);

Luego las consultas y actualizaciones en ambas en simultáneo... Se podrá? No sé como referirme a una u otra conexión
Título: Re: Conectarse simultaneo a dos servidores MySQL
Publicado por: shadow_rev en Miércoles 3 de Junio de 2009, 03:03
Nada pierdes con intentar  :whistling:

Según la documentación de PHP, como lo tienes es correcto, asi que debería funcionar.
Título: Re: Conectarse simultaneo a dos servidores MySQL
Publicado por: oswaldorivera en Miércoles 3 de Junio de 2009, 04:25
Gracias!

La cosa es que me imaginaba una sentencia SQL que hiciera mención a ambas tablas, en ambas bases de datos y de ambas conexiones...

Tomando en consideración que se trata de un estructura de unos 25 atributos y mas de 5000 registros (y en constante aumento), era un dolor de cabeza hacer un "TRUNCATE TABLE tabla_destino" para luego volcar en ella los datos de la origen, sin poder usar una sentencia del estilo "INSERT INTO tabla_destino VALUES SELECT * FROM tabla_origen" que las menciona a las dos tablas, me explico?

Al final se me ocurrió una forma de automatizar la construcción de la sentencia "INSERT INTO tabla_destino (nombre_campos) VALUES (data1, data2, ... dataN), (data...)" con todos los registros juntos. La construí leyendo de la tabla origen, la ejecuté sobre la tabla destino y funcionó bien, sin problemas.

Mañana la posteo para que cualquiera con este mismo dilema  :brickwall: pueda tener una alternativa, un poco loca pero válida. Ahora estoy en casa y no tengo el código a mano.

Saludos!