DBI Básico - Banco de Dados Perl
Publicado por Daniel Vinciguerra (última atualização em 02/03/2016)
[ Hits: 5.494 ]
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
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
QUERO REVIVER UM COMPUTADOR ANTIGO, MAS TIVE PROBLEMAS COM OS LINUX QU... (11)
Instalar debian testing (13) "por cima" do debian 12 (3)