DBI Básico - Banco de Dados Perl
Publicado por Daniel Vinciguerra (última atualização em 02/03/2016)
[ Hits: 5.126 ]
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.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
erro ao clonar repo github (5)
Problema Envio email GLPI Versao 10.0.15 (1)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (25)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba