[Cascavel-pm] Res: Res: Duvida $dbh->prepare

Nelson Ferraz nferraz em gmail.com
Sexta Janeiro 26 07:45:33 PST 2007


Patty Silva wrote:
> sub insert
> {
> 
> my ($nome,$var,$flag, em datas)=@_;
> 
> 
> my $sql = qq/ INSERT INTO tablea(Nome,Data) VALUES(?,?) ON DUPLICATE KEY UPDATE $var="$flag" /;
> 
> 
> eval 
> {
>         $sth2 = $dbh->prepare($sql);
> 
>         foreach my $data(@datas)
>         {      
>             $sth2->execute($nome,$data);
> 
>   
>         }
>     $sth2->commit;
>         
> };
> 
> }

Patty,

Você colocou o código dentro de um eval, o que é bom, mas não verificou
se ele retornou um erro, o que é mau.

Seria melhor fazer o seguinte:

eval {
  # código
};

# tratamento de erros
die $@ if defined $@;


Esconder mensagens de erro é o mesmo que varrer a sujeira pra debaixo do
tapete: você deixa de enxergar o problema, mas ele continua lá.

[]s

Nelson



Mais detalhes sobre a lista de discussão Cascavel-pm