• Publicidad

Problemas con DBI y DBD::mysql en Linux

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

Problemas con DBI y DBD::mysql en Linux

Notapor adrian_leo » 2008-10-31 09:13 @426

Saludos Perleros,

Soy totalmente nuevo en este lenguaje, he bajado algunos ejemplos pero no sé ni cómo empezar. Les agradecería mucho si me pueden ayudar y guiar.

Les comento. Quiero conectarme a MySQL con Perl, y tengo un módulo (nombre: /usr/lib/perl/5.8.8/conexionMySQL.pm) con el siguiente código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w
package conexionMySQL;

use strict;
use DBI;

my $usuario = "root";
my $clave = "clave";
my $host = "localhost";
my $base= "database";

my $info_conection = "DBI:mysql:host=$host; database=$base";

sub conectar{
        return (DBI->connect($info_conection, $usuario, $clave, {PrintError => 0, RaiseError => 1}));
}
       
1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



Archivo Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use conexionMySQL;

my $nombrevar = "leonardo";

$dbh = conexionMySQL -> conectar();

#Prepara la sentencia
$sentenciaSQL = $dbh->prepare('INSERTO INTO prueba nombre = ?') or die ("No se pudo preparar la sentencia: " . $dbh->errstr);

#Ejecuta la sentencia
$sth -> execute($nombrevar) or die ("No se pudo ejecutar la sentencia:" . $sth->errstr);

$sth -> finish;

#Cierra la conexion
$sth -> disconnect;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y cuando lo ejecuto me da el siguiente error:

Código: Seleccionar todo
root@noc02:/home/acollantes/perl# perl prueba.pl
Can't call method "execute" on an undefined value at prueba.pl line 12.


¿Alguien sabe de qué puede ser el error?

Gracias por su ayuda.
adrian_leo
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2008-10-31 08:48 @409

Publicidad

Notapor explorer » 2008-10-31 09:23 @432

Bienvenido a los foros de Perl en Español, adrian_leo.

Debes usar la variable $sentenciaSQL en lugar de la $sth.

Si colocas 'use strict;' y 'use warnings;' al principio del programa, Perl te ayudará a encontrar ese tipo de errores.
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

qué más adrianleo, ¡¡¡ NO SABRAS !!!

Notapor EL35VACA » 2008-11-16 16:31 @730

¡¡¡NO SABRAS!!! chiiiiiii, ya te voy a mandar un código a tu mail, algo simple para que entiendas. :lol:, luego me dices si te sirve. Nos vemos en la U. Saludos (Luis, Paúl y Jimena).
EL35VACA
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2008-11-16 16:20 @722


Volver a Bases de datos

¿Quién está conectado?

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