Ir para o conteúdo

Ligações a base de dados com DBI

Para realizarem este exemplo vão necessitar de uma base de dados (PostgreSQL ou MySQL).

Para criarem a tabela:

CREATE DATABASE perldb;

CREATE TABLE tblutilizador
(
  id integer NOT NULL,
  nome character varying(50),
  idpasswd integer NOT NULL,
  CONSTRAINT tblutilizador_pkey PRIMARY KEY (id)
)

insert into tblutilizador values('1','maria','213');

Na realidade eu ia criar duas tabelas, uma com o nome do utilizador e outra com a password associada ao mesmo, mas estou um pouco esquecido de SQL, portanto fica apenas com uma tabela, que serve bem para o exemplo.

Uma vez a base de dados criada, vamos passar ao Perl:

#!/usr/bin/perl

use strict; 
use DBI;    #Precisamos dele para realizarmos a ligação na base de dados

#realiza a ligação na base de dados 'perldb', user, password
my $dbcon = DBI ->connect("dbi:Pg:dbname=perldb","nome","pass"); # caso sejam fans de mysql-> dbi:mysql:perldb

#realiza o select
my $sql = $dbcon->prepare("select * from tblutilizador");
$sql->execute();    #envia o pedido para executar o select

#retorna os valores
while(my $out = $sql->fetchrow_hashref()) #retorna a linha da tabela
{
print "$out->{'nome'} utiliza o idpasswd $out->{'idpasswd'}\n"; #vai retornar as colunas nome e idpasswd
}

#fecha a ligação
$dbcon->disconnect();

## Output:
# maria utiliza o idpasswd 213