Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ^Tifa^ en 14 Diciembre 2007, 14:53 pm



Título: Mi Script de Perl y Mysql :(
Publicado por: ^Tifa^ en 14 Diciembre 2007, 14:53 pm
He creado un scriptcito Perl con orientacion OOP ..  soy novata con Perl todavia  :-\  mi scriptcito en cuestion funciona excepto la opcion 5 que me muestra todassss las columnas de una tabla que yo le indique, pongo el nombre de la tabla y se queda buscando y buscando y nunca me responde  :-(  no se que onda yo necesito ver que tienen las tablas dentro. Este es mi scriptcito.

Código:
#!/usr/bin/perl
use strict;
use warnings;
use prueb;
our $respuesta;
our @todo;
our @peti = qw(peticion tabla tablita tables);

print "-------- Mysql Consultas --------\n";
print "-------- Autor : M. ---------\n\n";
print "Inserte por orden y separados por espacio <NO ENTER> :\n *Nombre Host :\n *Nombre Base de datos :\n *Nombre Usuario :\n *Contrasena de Usuario :\n ";
my $opcion = <STDIN>;
chomp($opcion);
@todo = split(/\s+/, $opcion);
print "\n\n";
do {
print "1-Eliminar Tabla\n 2-Crear Tabla\n 3-Ver Listado Tablas\n 4-Ver Listado DB\n 5-Ver Registros Tabla
6-Salir\n";
print "Inserte su peticion\n";
$respuesta = <STDIN>;
chomp($respuesta);

if ($respuesta == 1) { eval $peti[1]->eliminar; }
elsif ($respuesta == 2) { eval $peti[2]->crear; }
elsif ($respuesta == 3) { eval $peti[3]->ver; }
elsif ($respuesta == 4) { eval $peti[3]->db; }
elsif ($respuesta == 5) { eval $peti[3]->registro; }
elsif ($respuesta == 6) { exit(1); };

} while (1);

exit(0);

Este es el modulito que lo acompana.

Código:
package prueb;
use strict;
use Mysql;
require "prueb.pl";
our $respuesta;
our @todo;

sub main {
my $conexión = Mysql->connect($todo[0], $todo[1], $todo[2], $todo[3]) or die "$!\n";
};

sub peticion::query {
& main();
main->selectdb($todo[1]);
main->query($respuesta) || die "$!\n";
};

sub tabla::eliminar {
print "Inserte el nombre de la tabla a Eliminar : ";
my $respuesta = <STDIN>; chomp($respuesta);
& main();
main->selectdb($todo[1]);
my $peticion = main->query("drop table if exists $respuesta;") || die "$!\n";
print STDOUT "Ejecuccion Realizada satisfactoriamente\n";
};

sub tablita::crear {
print "Inserte la sentencia SQL a ingresar\n";
my $respuesta = <STDIN>; chomp($respuesta);
do main;
main->selectdb($todo[1]);
my $peticion = main->query($respuesta) || die "$!\n";
print STDOUT "Ejecuccion Realizada satisfactoriamente\n";
};

sub tables::ver {
do main;
my @tablas = main->listtables;
print "Las tablas disponibles son @tablas\n";
};

sub tables::db {
& main();
my @datas = main->listdbs;
print "Las Base de datos disponibles en su esquema son : \n @datas\n";
};

sub tables::registro {
print "Inserte el nombre de la tabla\n";
my $respuesta = <STDIN>; chop $respuesta;
do main;
main->selectdb($todo[1]);
my $peticion = main->query("SELECT * FROM $respuesta;");
my @peti = $peticion->fetchrow();
print "Los datos de dicha tabla son \n @peti\n";
};

return 0;