Perl e MySQL

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

[ Hits: 10.996 ]

Por: Matheus em 05/03/2014 | Blog: http://hc0der.blogspot.com


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

Shell Script para WEB

Leitura recomendada

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

Enviando emails em Perl

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

Módulos CPAN no Debian e distros GNU/Linux em geral

Um pouco de 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 Mmxm_bd 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 Mmxm_bd 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 eddye00 em 05/09/2014 - 09:06h

Excelente artigo. Parabéns!


Contribuir com comentário