DBI Básico - Banco de Dados Perl
Publicado por Daniel Vinciguerra (última atualização em 02/03/2016)
[ Hits: 5.658 ]
Homepage: http://bivee.com.br
Quando estamos aprendendo linguagens de programação, sempre chegamos a um ponto onde armazenar e trabalhar com dados se torna importante.
O Perl tem um meio muito interessante de fazer isso através do modulo DBI (Perl Database Interface) que inspirou algumas linguagens, como Ruby e Python.
Baixe o código deste script e leia com atenção os comentários para conhecer o básico de como trabalhar com o banco de dados em Perl.
PRÉ-REQUISITOS:
- Perl 5.10 ou superior
- Banco MySQL instalado
- Driver dbi DBD::mysql instalado
REFERÊNCIAS:
http://dbi.perl.org
https://metacpan.org/pod/DBI
EXECUTANDO:
Para executar o script:
$ perl dbi-basico.pl
Para ver mais mensagens de debug execute com a flag debug:
$ DEBUG=1 perl dbi-basico.pl
Obs.: altere a string de conexão dentro do script.
#!/usr/bin/env perl
# 2016 (c) Daniel Vinciguerra
# carrega os programas mais comuns
use 5.10.0;
use strict;
use warnings;
# http://dbi.perl.org
use DBI;
use Carp;
# criando uma nova conexão usado o driver DBD::mysql
# https://metacpan.org/pod/DBD::mysql
my $dbh = DBI->connect(
'dbi:mysql:database=test;host=localhost;', 'root', 'test'
);
# try/catch
eval {
# excluindo a tabela
say "DEBUG: Tabela 'usuario' removida!" if $ENV{DEBUG};
$dbh->do('DROP TABLE usuario;');
# criando a tabela
say "DEBUG: Tabela 'usuario' criada!" if $ENV{DEBUG};
$dbh->do(q{
CREATE TABLE `usuario` (
`id` INT NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`senha` VARCHAR(45) NOT NULL,
`criacao` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`));
});
# inserindo 5 usuários
say "DEBUG: Adicionando 5 usuários!" if $ENV{DEBUG};
for my $number ( 1 .. 5 ){
$dbh->do(
'INSERT INTO usuario (nome, email, senha) VALUES (?, ?, ?)', undef,
"Usuario ${number}", "usuario${number}\@teste.com", "passwd"
);
}
};
if($@){
# catch error
Carp::confess("Database Error: $@");
}
############################
# listando todos os registros
############################
eval {
say "DEBUG: Executando query 'SELECT'!" if $ENV{DEBUG};
my $sth = $dbh->prepare( 'SELECT * FROM usuario');
$sth->execute;
# todas as linhas em um array de hashes
while(my $linha = $sth->fetchrow_hashref){
# exibindo colunas
say "Usuário $linha->{id} - '$linha->{nome}' encontrado!";
}
};
############################
# pesquisando um registro
############################
eval {
say "DEBUG: Executando query 'SELECT' usando 'WHERE'!" if $ENV{DEBUG};
my $sth = $dbh->prepare(
'SELECT id, nome, email, senha, criacao FROM usuario WHERE id = ?'
);
$sth->execute(2);
# todas as colunas no array coluna
my @coluna = $sth->fetchrow_array;
# exibindo colunas
say "Usuário '$coluna[1]' encontrado!";
};
############################
# Excluindo um registro
############################
eval {
say "DEBUG: Executando query 'DELETE'!" if $ENV{DEBUG};
$dbh->do('DELETE FROM usuario WHERE nome = ?', undef, 'Usuario 3');
# exibindo colunas
say "Usuário 'Usuario 3' removido!";
};
DBIx::Custom para acesso ao Banco de Dados
Script para fazer buscas no arquivo de logs do squid
Script que mostra a temperatura do processador
Cálculo do MDC em Perl para quantidade ilimitada de parâmetros
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (9)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









