Pular para o conteúdo

DBI Básico - Banco de Dados Perl

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.
Daniel Vinciguerra dvinciguerra
Hits: 5.816 Categoria: Perl Subcategoria: Banco de dados
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download dbi-basico.pl Enviar nova versão

Esconder código-fonte

#!/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!";
};

Teste de conexão com MySQL

DBIx::Custom para acesso ao Banco de Dados

CatBox várias funções

Retorna apenas emails válidos com MX válidos

Script que procura uma palavra em um arquivo.

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.