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:
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!