Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Proyecto de local a un servidor

Estas en el tema de Proyecto de local a un servidor en el foro de PHP en Foros del Web. Hola a todos TEngo un problema con la conexion, pense que habia resuelto esto pues en localhost me funcionaba a la perfeccion pero pues llego ...
  #1 (permalink)  
Antiguo 23/07/2014, 12:47
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 5 años, 11 meses
Puntos: 0
Proyecto de local a un servidor

Hola a todos

TEngo un problema con la conexion, pense que habia resuelto esto pues en localhost me funcionaba a la perfeccion pero pues llego el momento de subirlo a un servidor. Esto funcionaba cuando la base de datos estaban con el mismo usuario y contraseña sin embargo ocurre un problema. En la version final separaran las bases de datos y mi codigo solo funciona como se los explique.

Entonces me vi en la necesidad de crear otra conexion pero simplemente fallan estas conexiones, ya intente todo lo que me encontre por internet:

Código:
$hostname='tu.servidor.remoto'; 
$username='tu_usuario_remoto'; 
$password='tu_password_remoto'; 
 
$hostname2='localhost'; //puede ser reemplazado por el nombre de tu servidor local si fuera otro nombre
$username2='tu_usuario_local'; 
$password2='tu_password_local'; 
 
$dbname='tu_base_de_datos'; 
#Para efectos del ejemplo supondremos que es la misma base de datos en ambas bases de datos tanto la remota como la local 
 
$conex_remota = @mysql_connect($hostname,$username, $password); 
#notese el @ antes del comando mysql_connect para evitar que arroje mensaje de error de PHP 
 
if (!($conex_remota)) { 
    $conex_local = @mysql_connect($hostname2,$username2, $password2) OR DIE ('No puedo conectarme a la base de datos local! Intentelo nuevamente.'); 
} 
mysql_select_db($dbname);
Osea hacer conexiones solo cambiando los nombres de las variables, pero de igual forma me marca error, cuando trato de hacer consultas o hacer operaciones con estas bases de datos (Insert, delete, etc).

Aqui tengo mi codigo que funciona de manera correcta en localhost haber si me pueden ayudar con esto.

Código:
<?php
// Si la base de datos tiene muchos datos habilitar esto
set_time_limit(0);
header('Content-type: text/plain');
$conexion = mysql_connect('localhost', 'root', '');
// De que base de datos vamos a tomar las tablas
$db_from = 'microsip';
// A que base de datos vamos a migrar las tablas
$db_to = 'test';
// Con los datos o no
$data = true;
// Leemos todas las tablas de db_from
$sql = "SHOW TABLES FROM $db_from";
$result = mysql_query($sql);
$list_tables = array();
while ($row = mysql_fetch_assoc($result))
{
   $list_tables[] = current($row);
}
//Borrar tablas si existen
foreach ($list_tables as $tbname){
   $sql = "DROP TABLE IF EXISTS $db_to.$tbname";
   $result = mysql_query($sql);
   if ($result)
   {
      echo "Actualizada de la tabla $db_from.$tbname a $db_to.$tbname \n";
   }
}

// Migramos las estructuras de las tablas
foreach ($list_tables as $tbname){
   $sql = "CREATE TABLE IF NOT EXISTS $db_to.$tbname LIKE $db_from.$tbname";
   $result = mysql_query($sql);
   if ($result)
   {
      echo "Actualizada tabla $db_from.$tbname a $db_to.$tbname \n";
   }
}
// Si data es true pasamos los datos de cada tabla vieja a la nueva
if ($data)
{
   echo "Comienza la migracion de datos \n";
   foreach ($list_tables as $tbname)
   {
      $sql = "INSERT INTO $db_to.$tbname SELECT * FROM $db_from.$tbname ";
      $result = mysql_query($sql);
      if ($result)
      {
         echo "Migrados datos de la tabla $db_from.$tbname a $db_to.$tbname \n";
      }
   }
   echo "Termina la migracion de datos \n";
}

?>
Me marca error en esta parte while ($row = mysql_fetch_assoc($result)), ya le movi mucho al codigo y nada mas no llego a un resultado positivo.

Creo que la conexion no hay problema con mi codigo pues pasa por algo la conexion.

Espero y me puedan ayudar, gracias.

Saludos
  #2 (permalink)  
Antiguo 23/07/2014, 13:09
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 8 años, 10 meses
Puntos: 288
Respuesta: Proyecto de local a un servidor

Hola amiguito,
cuando publicaste en el server de produccion te toma al menos 1 conexion?
  #3 (permalink)  
Antiguo 23/07/2014, 13:30
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 5 años, 11 meses
Puntos: 0
Respuesta: Proyecto de local a un servidor

Hola patriarka gracias por contestar

Si, el problema es que mi codigo solo funciona si hay 2 bases de datos con el mismo servidor y mismo usuario.
De hecho al principio cuando no me habian cambiado la base de datos se conectaba bien y hacia todo correctamente pero el cambio de la base datos es el que me cambio por completo todo.

No se si me pueden ayudar con otro modo de conexion, como tambien ya mencione no me sirvieron las mas faciles, lo que pasa es que en el codigo tengo que hacer estas consultas y demas.

Ah! otra cosa una manera de que actualize. Si se dan cuenta en mi codigo hago una pobre simulacion de actualizacion, borro las tablas y luego las vuelvo a subir con los datos nuevos, el como se cual es la mas actual lo hago con otro codigo, el caso es que en una base de datos tengo 22 tablas y en otra tengo 270 tablas y bueno este preceso se hace algo lento.

Como habran notado no soy muy bueno en mysql y php, bueno almenos en esta cosa de bases de datos.

Espero y me puedan ayudar.

Saludos
  #4 (permalink)  
Antiguo 23/07/2014, 13:35
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 8 años, 10 meses
Puntos: 288
Respuesta: Proyecto de local a un servidor

bueno entonces hay que definir mejor el problema,
vos tenes una aplicacion que se conecta a 2 bases de datos simultaneamete, verdad?

no entiendo por que te conectas a 2 bases de datos
  #5 (permalink)  
Antiguo 23/07/2014, 13:45
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 5 años, 11 meses
Puntos: 0
Respuesta: Proyecto de local a un servidor

Hola patriarka

La uso para actualizar una base de datos con otra, lo que pasa es que una es de un sistema de escritorio y otra es una tienda web, a ambos sistemas no les puedo meter mucho la mano (moverle el codigo fuente) por que estan restringidos, pero me pidieron que enlazara estos sistemas por medio la base de datos.

Una base de datos la tiene la empresa de hecho es en un pequeño servidor y la pagina la tienen alojada en un hosting comercial.
  #6 (permalink)  
Antiguo 23/07/2014, 13:53
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 8 años, 10 meses
Puntos: 288
Respuesta: Proyecto de local a un servidor

bueno por eso te digo, tenes que conectarse a 2 db simultaneamente.
tenes que ser mas simple y directo en el problema que queres resolver.

esto se hace asi:
Código PHP:
Ver original
  1. <?
  2. $hostname='tu.servidor.remoto';
  3. $username='tu_usuario_remoto';
  4. $password='tu_password_remoto';
  5.  
  6. $hostname2='localhost';
  7. $username2='tu_usuario_local';
  8. $password2='tu_password_local';
  9.  
  10. $dbname='tu_base_de_datos';
  11. #Para efectos del ejemplo supondremos que es la misma base de datos en ambas bases de datos tanto la remota como la local
  12.  
  13. $conex_remota = mysql_connect($hostname,$username, $password);
  14. mysql_select_db($dbname, $conex_remota);
  15.  
  16.  
  17. $conex_local = @mysql_connect($hostname2,$username2, $password2);
  18. mysql_select_db($dbname, $conex_local);
  19.  
  20. $sql = "SHOW TABLES FROM $db_from";
  21. $result = mysql_query($sql, $conex_remota);
  22.  
  23. $sql = "SHOW TABLES FROM $db_from";
  24. $result = mysql_query($sql, $conex_local);
  25.  
  26. $sql = "SHOW TABLES FROM $db_from";
  27. $result = mysql_query($sql, $conex_remota);
  28.  
  29.  
  30. ?>

eso te tiene que funcionar, podes interactuar con las 2 db simultaneamente.
si no podes acceder a alguna db es otro problema
  #7 (permalink)  
Antiguo 24/07/2014, 09:16
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 5 años, 11 meses
Puntos: 0
Respuesta: Proyecto de local a un servidor

Hola patriarka

No se por que esta vez si funciono, pero lo hizo te juro que tenia un codigo casi identico al que me brindas y tenia muchos problemas con este.

GRacias por la ayuda

Etiquetas: local, mysql, proyecto, select, servidor, sql, tabla, variable
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 15:01.