• Publicidad

Falla en "prepare"

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Falla en "prepare"

Notapor fmestre » 2011-11-28 01:14 @093

Hola, buenas noches, estoy tratando de hacer algo sencillo pero algo me falla y no encuentro el problema.

El código es el siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use Asterisk::AGI;
  4. use File::Basename;
  5. use DBI;
  6. use DBD::mysql;
  7. use POSIX;
  8.  
  9. $AGI = new Asterisk::AGI;
  10. my %input = $AGI->ReadParse();
  11.  
  12.  
  13.  
  14. # CONFIG VARIABLES
  15. $platform = "mysql";
  16. $database = "aaa";
  17. $host = "localhost";
  18. $port = "3306";
  19. $tablename = "tabla";
  20. $user = "root";
  21. $pw = "";
  22.  
  23. #DATA SOURCE NAME
  24. $dsn = "dbi:mysql:$database:localhost:3306";
  25. # PERL DBI CONNECT
  26. $cnx = DBI->connect($dsn, $user, $pw);
  27.  
  28. #TOMA EL CODIGO DIGITADO POR EL USUARIO
  29. my $cedula =$AGI->get_data('custom/CEDULA', 3000, 11);
  30. my $clave  =$AGI->get_data('custom/CLAVE', 3000, 11);
  31. my $sql = "SELECT clave FROM principl WHERE cedula='$cedula' AND clave='$clave'";
  32. $AGI->say_digits($clave);
  33. $sth = $cnx->prepare($sql); #ERROR 1 ACÁ, NO PASA DE ACÁ
  34. my $num  = $sth->execute(); #ERROR 2 ACÁ
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Y hasta ahí llego. El problema es en el prepare(). He corrido este código en otros server y me funciona, pero donde necesito, no. Agradezco alguien me pueda orientar.

Saludos.
fmestre
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2010-12-17 18:42 @821

Publicidad

Re: Falla en "prepare"

Notapor explorer » 2011-11-28 10:45 @489

No estás comprobando el resultado del connect(), así que no sabemos si has conseguido conectarte a la base de datos, o no. Mejor así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $cnx = DBI->connect($dsn, $user, $pw) or die $DBI::errstr;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


También puedes hacer lo mismo en el resto de líneas que intervienen con la base de datos. Por ejempo, en el prepare():
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $sth = $cnx->prepare($sql) or die $cnx->errstr;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
En caso de error, mostrará en pantalla el error.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados