Perl e MySQL

Nesse artigo, eu explico como podemos integrar Perl com MySQL, um dos SGBDs mais populares do mundo.

[ Hits: 14.520 ]

Por: Perfil removido em 05/03/2014


Conectando-se ao Database / Identificando os erros



Conectando-se ao Database

Nesse primeiro exemplo, irei mostrar como conectar-se ao MySQL e verificar se houveram erros com essa conexão:

  use DBI;
  use DBD::mysql;
  my $host = 'localhost';
  my $user = 'root';
  my $password = 'toor';
  my $db = 'perl';
  my $info = "dbi:mysql:$db:$host:3306";
  my $con = DBI->connect($info,$user,$password);

A função DBI->connect, funciona da seguinte maneira:

  DBI->connect('dbi:<DRIVER>:<NOME-DO-DATABASE>:<HOST>:PORTA','USUÁRIO','SENHA', { atributos })

Nesse exemplo de código, iremos nos conectar em localhost, na porta 3306 (porta usada pelo MySQL, por padrão), usando as credenciais root como usuário, toor como senha e usando o Database perl.

Caso a conexão seja bem sucedida, no exemplo acima, nenhuma mensagem de erro será exibida, significa que tudo ocorreu bem.

Mas, agora, se algo tenha ocorrido errado, como por exemplo: "Credenciais inválidas, database "perl" inexistente", entre outros, mensagens de erros serão exibidas por padrão. Você pode inibir essas mensagens, para isso, basta usar a seguinte linha de código:

  my $con = DBI->connect($info,$user,$password,{ PrintError => 0, RaiseError => 0 });

Se ocorrerem erros, eles não serão mais exibidos por padrão. Isso é bem útil, caso goste de customizar as mensagens de erros, ou simplesmente, não queira exibir essas mensagens para o usuário em uma interface WEB (por exemplo).

Mas, e agora? Como vou saber se tudo ocorreu bem, se os erros não aparecem mais? (Haha) Isso é Perl! É como o próprio slogan da linguagem diz: "Existe mais de uma maneira de se fazer isso!".

Você pode verificar erros, usando o operador lógico or (||), exemplos:

  my $con = DBI->connect($info,$user,$password,{ PrintError => 0, RaiseError => 0 }) || die("Error");
  my $con = DBI->connect($info,$user,$password,{ PrintError => 0, RaiseError => 0 }) or return("error");

Ou, verificando a variável que recebe informações da conexão, usando outro operador lógico, o not (!), exemplo:

if(not($con)){
    print "Falha na conexão\n";
}

if(!$con){
    print "Falha na conexão\n";
}

Identificando os erros

Para isso, basta usar as variáveis "$DBI::errstr" e "$DBI::err", através delas, você pode verificar quais erros estão ocorrendo na sua aplicação.

Onde:
  • $DBI::errstr contém uma mensagem com o erro.
  • $DBI::err contém somente o código do erro.

E dessa maneira, você pode tentar resolver esses erros (*of course modafoca*).

Você também pode verificar por erros em execuções de queries, usando a função errstr e err, através das variáveis que ficaram responsáveis por receber informações da consulta.

Exemplo:

sql->errstr e $sql->err

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Conectando-se ao Database / Identificando os erros
   3. Executando querys / Exibindo o resultado de uma query
   4. Affected Rows
Outros artigos deste autor

Lançamento do GFP Open (Gerenciador Financeiro Pessoal) versão 0.0.1.2

Configurando HD via porta USB no Linux

Trabalhando com foto usando Cheese + GIMP + Xmorph

Software Livre: primeiras impressões

Suporte TCP Wrapper - Serviços stand-alone no Debian 6

Leitura recomendada

Programando uma Intranet com Apache, MySQL e Perl (parte 2)

Autenticação mútua SSL em servidores de NF-e e CT-e

Decodificando filmes do programa "3w player"

Catalyst Framework Perl - Parte III

Comparação entre Tcl e Perl

  
Comentários
[1] Comentário enviado por leo4b em 05/03/2014 - 05:43h

Muito bom!
Você tem alguma dica de material para quem está começando em perl ? Eu so meio fraquinho em programação mas tenho como base shell script que foi aonde me aprofundei mais :/

[2] Comentário enviado por danniel-lara em 05/03/2014 - 10:54h

Parabéns , muito bom mesmo
bem explicado mesmo
estou estudando perl e esse artigo vai me ajudar muito

[3] Comentário enviado por removido em 05/03/2014 - 12:06h


[1] Comentário enviado por leo4b em 05/03/2014 - 05:43h:

Muito bom!
Você tem alguma dica de material para quem está começando em perl ? Eu so meio fraquinho em programação mas tenho como base shell script que foi aonde me aprofundei mais :/


Cara tem um livro muito bom que se chama Programando com Perl , ele é em português e foi escrito pelo Thiago Glauco Sanchez , o livro é muito bom pra quem ta começando :D

[4] Comentário enviado por danniel-lara em 05/03/2014 - 14:13h


[3] Comentário enviado por Mmxm_bd em 05/03/2014 - 12:06h:

Cara tem um livro muito bom que se chama Programando com Perl , ele é em português e foi escrito pelo Thiago Glauco Sanchez , o livro é muito bom pra quem ta começando :D


Esse Livro é muito bom mesmo eu recomento ele , estou lendo esse livre e é muito bom mesmo


[5] Comentário enviado por gamjacoby em 03/07/2014 - 14:08h

Não entendi aonde eu coloco o código:

use DBI;

@drivers = DBI->available_drivers;
print $_."\n" foreach(@drivers);

[6] Comentário enviado por removido em 03/07/2014 - 20:12h


[5] Comentário enviado por gamjacoby em 03/07/2014 - 14:08h:

Não entendi aonde eu coloco o código:

use DBI;

@drivers = DBI-&gt;available_drivers;
print $_."\n" foreach(@drivers);


Esse codigo é só um exemplo , serve para identificar os drivers instalados.

[7] Comentário enviado por removido em 05/09/2014 - 09:06h

Excelente artigo. Parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts