Usando Base de Datos en Perl

En esta oportunidad les traemos una breve explicación del modulo DBI el cual nos permite trabajar con nuestras bases de datos en Perl. Para este ejemplo utilizaremos Mysql como motor de base de datos.

Lo primero es instalar el modulo sino saben como realizarlo pueden consultar el siguiente Instalación de Librerías usando CPAN Client.

  • Para poder trabajar con nuestra base de datos lo primero es definirla mediante la siguiente sentencia: 
#! /usr/bin/perl
#--Comieza el código del proceso resumen_quiebres--  
#Se cargan librerías necesarias para ejecutar la aplicación.
use strict; #Esta librería obliga el uso de declaraciones en perl
use DBI;

my $dbh = DBI->connect ("DBI:mysql:quality_info_solutions:host=localhost","root", "1234",       
                              {RaiseError => 1, PrintError => 0});

Básicamente se define el motor de base de datos seguido del nombre de la base , el usuario con permisos y la contraseña.

  • Una vez definidos los datos de conexión estamos en condiciones de comenzar a utilizar nuestra base de datos.  Y como en todo lenguaje lo recomendado es primero es definir nuestra query en una variable y luego ejecutar el método que la realice. 
my $sql = qq{
             SELECT
                  nombre,
                  edad,
                  rut
             FROM
                  cliente
             WHERE
                  edad >= 20
             ORDER BY
                  nombre				   
};

my $sth = $dbh->prepare($sql);
   $sth->execute();

  Para explicar un poco el código anterior podrán notar que utilizo qq{}; la única razón es que permite concatenar todo el contenido inclusive si enviamos alguna variable. 

  Luego asignamos a una variable la query(consulta)  lista para poder ser ejecutada utilizando la variable de nuestra conexión seguida de la orden de preparación ($dbh->prepare($sql);).

 Por ultimo ejecutamos nuestra consulta con el método execute().

  • Ya hemos realizado nuestra primera consulta y ustedes se podrán preguntar ¿como lo hago para ver los resultados?, la respuesta es recorriendolos mediante un ciclo while de la siguiente manera.

 

while(my($nombre, $edad, $rut) = $sth ->fetchrow_array ())
 {  
   print $nombre;
   print $edad;
   print $rut;
 }

El código anterior asigna inmediatamente los resultados linea a linea en las variables $nombre, $edad, $rut para poder ser utilizados de inmediato. 

  • Ya hemos realizado nuestra primera consulta y obtenido nuestros primeros resultados. Siempre recomiendo este procedimiento para realizar consultas (select) sin embargo para realizar insert o update prefiero utilizar la sentencia do.
$sql= qq{ UPDATE
            cliente
          SET
            nombre=\'Juan\'
          WHERE
            rut=\'1-9\'
};

$dbh->do($sql);

Pueden observar que reemplazamos

my $sth = $dbh->prepare($sql);
   $sth->execute();

Por

$dbh->do($sql);

En donde ejecutamos directamente la consulta en nuestra base de datos. Esto lo realizamos cuando se trata de un insert o un update y no nos interesa saber el resultado de la operación.

Espero les haya gustado el tutorial si tienen alguna consulta o sugerencia no duden en comentar.

Saludos.

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *