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