Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » Bases de Datos » Script para pasar de una bbdd remota a una bbdd local Responder al tema
Nuevo tema


Página 1 de 1  [ 2 mensajes ] 
 
Nota 2009-05-06 04:10 @215

Perlero Nuevo
Registrado: 2009-05-06 04:02 @210
Mensajes: 3
Script para pasar de una bbdd remota a una bbdd local
Buenas, tengo una duda y es que debo de coger una bbdd (en MySQL) localizada en un servidor que hay en la red y copiarme los datos a una bbdd (también MySQL) en local, todo esto utilizando un script de Perl que me sincronice las bbdd nada más arrancar la aplicación web de Perl.

Estoy probando lo primero en local y necesito saber porqué este script no me realiza ninguna consulta. Cojo una bbdd que tengo creada de pruebas y lo que intento es que también en local me copie algunos campos, "simulando" para cuando tenga que atacar a la base de datos remota, pero no da ningún resultado la ejecución del script, la aplicación parece que funciona bien pero al mirar el phpmyadmin veo que no se ha copiado nada.

Utilizo Ubuntu 8.04 + Apache2 + PHP5 + mysql-server-5.0 + phpmyadmin

Paso el script:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
package RackMonkey::joan;

sub new {

###############################################################################################
#####################################CONSULTAS A ORIGEN########################################
###############################################################################################
my $db_user="root";
my $db_pass="";
my (@columnas, @filas);

my $q_string="DBI:mysql:@127.0.0.1=$hostname;joan=$db_name";
my $dbh = DBI->connect($q_string, $db_user, $db_pass)|| die "Database connection not made: $DBI::errstr";

#usar bbdd nuestra
my $use = qq{ "USE joan;" };
my $sth = $dbh->prepare($use);
$sth->execute;

#Preparar seleccion
my $select1 = qq{ "SELECT nombre FROM prueba1;"  };
my $sth1=$dbh->prepare($select1);
$sth1->execute;
while(@fila=$sth1->fetchrow_array()){
        push(@columnas, $fila[0]);
}

###############################################################################################
###################################VOLCAR INFORMACION ORIGEN###################################
###############################################################################################

#cadena de conexion IMPORTANTE IP & NOMBRE BBDD
my $q_string2="DBI:mysql:@127.0.0.1=$hostname2;pruebas=$db_name2";
my $dbh2 = DBI->connect($q_string2, $db_user, $db_pass)|| die "Database connection not made: $DBI::errstr";

#Preparar sentencia SQL
$sth2 = $dbh2->prepare("INSERT INTO usuario(nombre) VALUES ('@columnas')");
$sth1 = $dbh->prepare("SELECT * FROM prueba1");
$sth1->execute();
while(@fila = $sth1->fetchrow_array()) {
        $sth2->execute(@fila);
}

}
1;



¡Gracias a todos de antemano!


Nota 2009-05-06 05:34 @273

Perlero Nuevo
Registrado: 2009-05-06 04:02 @210
Mensajes: 3
Perdonad las molestias, logré solucionarlo, dejo a continuación mi script por si hay alguna otra persona que alguna vez le haga falta que lo utilice:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
package RackMonkey::joan;

sub new {

###############################################################################################
#####################################CONSULTAS A ORIGEN########################################
###############################################################################################
my $db_user="root";
my $db_pass="";
my (@columnas, @filas);

my $q_string="DBI:mysql:@'127.0.0.1'=$hostname;joan=$db_name";
my $dbh = DBI->connect($q_string, $db_user, $db_pass)|| die "Database connection not made: $DBI::errstr";

my $use = qq{ USE joan };
my $sth = $dbh->prepare( $use );
$sth->execute();

#usar bbdd nuestra
my $use1 = qq{ SELECT nombre FROM prueba1 };
my $sth3 = $dbh->prepare($use1);
$sth3->execute();

my $vueltas=0;

while(@fila=$sth3->fetchrow_array()){
        push(@columnas, $fila[0]);
        $vueltas++;
}

###############################################################################################
###################################VOLCAR INFORMACION ORIGEN###################################
###############################################################################################
my ($q_string2, $sth2, $dbh2,$hostname2, $db_name2);

#cadena de conexion IMPORTANTE IP & NOMBRE BBDD

my $q_string2="DBI:mysql:@'127.0.0.1'=$hostname2;pruebas=$db_name2";
my $dbh2 = DBI->connect($q_string2, $db_user, $db_pass)|| die "Database connection not made: $DBI::errstr";

my $bbdd = qq{ USE pruebas };
my $query = $dbh2->prepare( $bbdd );
$query->execute();

my $eliminar = qq { TRUNCATE TABLE usuario };
my $query_borrar = $dbh2->prepare ($eliminar);
$query_borrar->execute();

my $i=0;

while ($i < $vueltas)
{
        my $consulta = qq{ INSERT INTO usuario(nombre) VALUES ('@columnas[$i]')};
        my $query2=$dbh2->prepare($consulta);
        $query2->execute();
        $i++;
}

}
1;


Responder al tema  [ 2 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO