Página 1 de 1

Crear tablas MySQL usando Perl

NotaPublicado: 2017-06-30 02:05 @129
por cachailoco
Estoy haciendo un script Perl que crea una base de datos y usa los datos que recupera de un texto.
Tengo problemas cuando creo las tablas con Perl: El programa crea la tabla pero no crea ninguna de sus columnas.

De ante mano, GRACIAS :D

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use DBI;
  5. use CGI;
  6. use CGI::Carp qw( fatalsToBrowser );
  7.  
  8. my $host = "localhost";
  9. my $database = "p8";
  10.  
  11. my $user = "franco";
  12. my $pw = "galleta1";
  13.  
  14.  
  15. my $dbh = DBI->connect(        
  16.     "DBI:mysql:dbname=$database;host=$host",
  17.     $user,                        
  18.     $pw,                        
  19.     { RaiseError => 1 },        
  20. ) or die $DBI::errstr;
  21. $dbh->do("USE prueba");
  22.  
  23. my $dm = qq(DROP TABLE IF EXISTS microarreglo);
  24. my $rv = $dbh->do($dm);
  25.  
  26. $dbh->do("CREATE TABLE microarreglo (genes CHAR,valores FLOAT,title CHAR,sample CHAR,KEY(genes))");
  27.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Re: Crear tablas MySQL usando Perl

NotaPublicado: 2017-06-30 19:24 @850
por explorer
Bienvenido a los foros de Perl en Español, cachailoco.

Pues yo no veo el problema... las sentencias son correctas.

¿Aparece algo en el log del MySQL? Ahí dirá por qué no crea las columnas.

Podría ser que le falta algún permiso al usuario... pero no sé exactamente cuál puede ser.

Yo... por seguridad... agregaría una línea

$dbh->disconnect;

al final del programa, para asegurarme que la base de datos se cierra de forma correcta.

Y... quizás ver qué es lo que devuelve la llamada a do() de la línea 26. Y si es un 'undef', ver el contenido de la variable $dbh->errstr;

Pero, lo dicho: la solución está en el registro de actividad de la base de datos.

Re: Crear tablas MySQL usando Perl

NotaPublicado: 2017-07-01 04:12 @216
por cachailoco
Tenía un problema utilizando la función quote() varias líneas más abajo...

Gracias por su tiempo.

Saludos.

cachailoco