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

Patty Silva ptfzs em yahoo.com.br
Quinta Janeiro 25 10:03:55 PST 2007


Ola Luis...
Eu faco update pois preciso inserir uma FLAG no BANCO... nao modifica os dados somente umas FLAGS.. e depois q eu insiro no BANCO por isso eu tenho que fazer um INSERT INTO .......... ON DUPLICATE pq o NOME e DATA sao CHAVES :)

Entendeu?


Obrigada pela força... estou tentando implementar e ja escrevo o resultado...


[]sss

----- Mensagem original ----
De: Igor Sutton <igor.sutton em gmail.com>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Quinta-feira, 25 de Janeiro de 2007 15:49:37
Assunto: Re: [Cascavel-pm] Res: Duvida $dbh->prepare

Patty,

Em 25/01/07, Patty Silva<ptfzs em yahoo.com.br> escreveu:
>
> Ola Luis..
> Aproveitando o seu codigo, tentei implementar o codigo abaixo, so para ver c
> funciona:
>
>
> @data_hash_references=('2007-01-23 12:00');
> $variavel='Nome'';            -> essa variavel pode mudar...
> $flag='BLABLA';
> $id='33';
> $table='tabela2';
>
>
> my $sql = qq/ INSERT INTO $table(Nome,DataHora) VALUES(?,?) ON DUPLICATE KEY
> UPDATE ?=? /;
>
> my ( $sth );
>
> eval {
> $sth = $dbh->prepare( $sql );
>
> foreach my $data(@data_hash_references)
> {
>
>    $sth->execute($id,$data,$variavel,$flag);
>
> }
> $sth->commit;
> };
> if( $@ )
> {
>   $dbh->rollback;
>   die "Pau de base de dados: $@";
> }
>
>
>
>
> So que ele da erro de Sintaxe quando ele atribui o ?=? eu acho q ele coloca
> uma aspas...
>
> :D Alguem saberia dzer  o pq??
>
>
> Obnrigada + uma vez...


Os placeholders fazem teste de sanidade para  evitar que você coloque
um código SQL malicioso (acredito que o Luis possa dar mais exemplos
disso).

Gostaria que você explicasse a sua query:

my $sql = qq/ INSERT INTO $table(Nome,DataHora) VALUES(?,?) ON
DUPLICATE KEY UPDATE ?=? /;

Em que situações o campo do UPDATE será modificado?

Ah, a propósito, o erro de sintaxe acontece pois o banco não conhece
as tabelas como 'tabela', apenas pela bareword.

Talvez tenha algum ponto sem nó aqui e alguém queira complementar.

HTH!
-- 
Igor Sutton Lopes <igor.sutton em gmail.com>
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm






__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070125/e064472d/attachment-0001.html 


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