DBI Básico - Banco de Dados Perl
Publicado por Daniel Vinciguerra (última atualização em 02/03/2016)
[ Hits: 5.407 ]
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
Validando lista de e-mail no MX
Wallpapers aleatórios no Fluxbox
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
A coisa universal é muito mais ampla do que cê imagina (12)
Não consigo atualizar para LinuxMint 22 com o Mintupdate (3)
Vc tem um projeto opensource? link? (3)
Linux Mint - Instalação do Ocomon 6x e suas dependências (1)