[Cascavel-pm] Duvidas em passar o valor 0 (zero) para uma função.

Marco Lima marco.lima em e-via.com.br
Quarta Março 9 05:11:01 PST 2005


Existe mais de uma maneira de fazer isso !!!

<code>
$sql = 'INSERT INTO <TABELA> (valor) VALUES ( ? )';
my $sth = $dbh->prepare( $sql ); 
   $sth->bind_param(1, 0);
   $sth->execute(); 
</code>

> Rod Za wrote:
> > Olá todos,
> > 
> > Estou com uma dúvida cruel! Quando passo o valor 0 (zero) para uma
função que grava este num banco
> > de dados, a minha função dá sempre erro! Como posso contornar isto?
> > 
> > _CODIGO_
> > sub teste{
> > 	my $valor = shift; 
> > 	my $query = "INSERT INTO banco_de_dados (valor) VALUES ('$valor')";
> > 	if($dbh->do($query)){
> > 		$dbh->commit;
> > 	}
> > }
> > _FIM_CODIGO_
> > 
> > ex: teste(0); ou teste(´0´); ou my $a=0; teste($a);
> > 
> > dá sempre o mesmo erro, como se o valor 0 (zero) nao fosse passado!
> > 
> > muito obrigado,
> > 
> 
>    O correto é usar PlaceHolders, uma técnica de passagem de dados 
> implementada por quase todos os drivers DBD:: que existem.
> 
>    __PERL__
>    # Eu uso tratamento de erros por exceptions.
>    $dbh->PrintError( 0 );
>    $dbh->RaiseError( 1 );
>    # Para usar placeholders, é preciso construir um query SQL assim:
>    $sql = 'INSERT INTO banco_de_dados (valor) VALUES ( ? )';
>    # e executá-lo normalmente, passando, é claro, o valor
>    # que se deseja inserir, assim:
>    my $sth = eval{ $dbh->prepare( $sql ); };
>    if( $@ ){ &handle_error(); }
>    eval{ $sth->execute( 0 ); };
>    if( $@ ){ &handle_error(); }
>    __END__
> 
>    Captou, Rod?
>    Espero ter ajudado.
>    Putamplexos!
> -- 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>   Luis Campos de Carvalho is BSc in Comp Science,
>   PerlMonk [SiteDocClan], Sao Paulo PM Leader,
>   Unix Sys Admin && Certified Oracle DBA
>   http://br.geocities.com/monsieur_champs/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> 
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
> 
> 



Marco Lima
marco.lima em e-via.com.br
mago em rio.pm.org

+55 19 96 56 06 46


Perl Monk
Brasil Perl Monger
Líder do Rio de Janeiro Perl Mongers

http://www.perlmonk.org
http://brasil.pm.org

Register Linux User #355235
Slackware Linux, for the subgenius



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