Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » Bases de Datos » Error al consultar base de datos desde Perl Responder al tema
Nuevo tema


Página 1 de 1  [ 3 mensajes ] 
 
Nota 2006-03-20 05:44 @280

Perlero Nuevo
Registrado: 2006-03-18 18:23 @807
Mensajes: 4
Error al consultar base de datos desde Perl
Hola a todos. Tengo un pequeño problema que espero me podais ayudar a resolver.

Resulta que quiero hacer una página dinámica con Perl y estoy haciendo pruebas de conectividad con la base de datos. Para ello he diseñado el típico script "Hola Mundo" y lo he guardado en el directorio que tengo asignado para ejecutar mis scripts en Apache-perl.

Mi problema es el siguiente (os muestro el código de mi script):

Código:
#! /usr/bin/perl -w

use DBI;
print "Content-type: text/html \n\n";
print "<html><head><title>Resultados</title></head><body>";

$dbh = DBI->connect("dbi:Pg:database=db_proyecto");
$sth = $dbh->prepare('SELECT * FROM usuarios');
$sth->execute();

while ( @row = $sth->fetchrow_array )
{

print  "<b>$row[0]\t$row[1]</b>";

}

$sth->finish();
$dbh->disconnect;
print "</body></html>";
exit (1);


Como podeis ver se trata de una consulta muy sencilla pero al ejecutarlo desde el navegador me muestra la página en blanco. Reviso los log del servidor Apache pero no me muestra ningún error de ejecucón. Si me pudieseis echar un cable os lo agradecería porque estoy algo perdido la verdad. Gracias anticipadas :D


Nota 2006-03-20 09:45 @448
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Hola:

Tu problema podría estár en que no te estás conectando a la base de datos correctamente, o que no se están leyendo bien los datos, o en varias cosas que podrían estár saliendo mal sin que te des cuenta. Es por ello que es muy importante que cuando hagas tus scripts siempre pongas revisiones de errores, por ejemplo, tu código lo podrías cambiar por algo así:

Código:
#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);
use DBI;



print "Content-type: text/html \n\n";
print "<html><head><title>Resultados</title></head><body>";

my $dbh = DBI->connect("dbi:Pg:database=db_proyecto", '', '',
                        {PrintError => 1, RaiseError => 1});

my $sth = $dbh->prepare('SELECT * FROM usuarios') or die("No se pudo preparar el query: " . $dbh->errstr);

$sth->execute() or die("No se pudo ejecutar el query: " . $sth->errstr);

    while ( my @row = $sth->fetchrow_array() ){

        print "<b>$row[0]\t$row[1]</b>";

    }

$sth->finish();
$dbh->disconnect or die("No me pude desconectar del DB: " . $dbh->errstr);

print "</body></html>";

exit (1);



Ahora tendrás un error en el caso de que falle alguna parte de la conexión con tu database. Prueba ejecutar el script a ver que error te muestra.


Saludos

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Nota 2006-03-23 06:59 @332

Perlero Nuevo
Registrado: 2006-03-18 18:23 @807
Mensajes: 4
Hola kidd muchas gracias por tu respuesta. Al final ya solucioné el problema. Tenías razón no estaba conectándome correctamente a la base de datos, sólo tube que añadir a la sentencia de conexión DBI el usuario y password del propietario de las tablas de la BD.

Muchas gracias por la ayuda! :D :D


Responder al tema  [ 3 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