Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2014, 12:47
danydenod
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 6 años
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