• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Dkid

Perl e DBI (Base de Dados)

2 mensagens neste tópico

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

PS: Queria perguntar como é que podemos inserir os valores nas tabelas sem sabermos o id?

EDIT : Já descobri, estou mesmo enferrujado.

insert into tblutilizador values((select max(id)+1 as idx from tblutilizador),'magda','1233');
select * from tblutilizador;

Fontes: http://www.perl.com/pub/a/2003/10/23/databases.html

    http://articles.techrepublic.com.com/5100-10878_11-6039937.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se usasses um numero que auto-incrementa não tinhas que te preocupar com isso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora