[SP-pm] Res: Res: DBI - placeholders

Wendel Scardua wendelscardua em gmail.com
Terça Julho 31 13:07:07 PDT 2007


Nããão, ele não disse que precisa escapar pro SQL, ele disse que precisa
escapar pro Perl:

Você não pode escrever 'Espelho d'Água'  no Perl. Mas pode escrever "Espelho
d'Água" , ou 'Espelho d\'Água' .

Até onde sei, o uso de placeholders vai tratar isso automagicamente sim :-)

(isto é, um  ->execute("Espelho d'Água") deveria ser seguro)

[]s
Wendel

On 7/31/07, Daniel (r) Antunes <danielrantunes em yahoo.com.br> wrote:
>
>     Opa André, desculpe...
>     Me empolguei na minha primeira contribuição no SP-PM.
>     Foi mal; infelizmente eu tbem não sei te responder, no entanto um
> outro amigo (o Rudolfo Rosa) respondeu que vc deve escapar manualmente.
>     Nada que uma expressãozinha do tipo :
>
> s/('|")/\\$1/g
>
>     Não resolva, ;)
>     Valeu, abraço.
>
> Daniel (r) Antunes
> *profissional de informática*
> *gnu/linux user* #238553
>
> ----- Mensagem original ----
> De: André Garcia Carneiro <andre.garcia.carneir em terra.com.br>
> Para: saopaulo-pm <saopaulo-pm em mail.pm.org>
> Enviadas: Terça-feira, 31 de Julho de 2007 16:14:05
> Assunto: Re: [SP-pm] Res: DBI - placeholders
>
> > Oi André,
> >     vou te dar um exemplo de placeholders :
> >
> >     $sth=$dbh->prepare('INSERT INTO table VALUES (?,?,?)');
> >     $sth->execute('placeholder1','2',3);
> >
> >     Consiste em vc utilizar no comando SQL o ? ao invés dos dados
> diretamente.
> >     No exemplo ele vai trocar o (?,?,?) pelos três dados fornecidos no
> execute.
> >     Flw.
>
> Valeu Daniel! Eu sei pra que serve um placeholder :D!!!!
>
> A minha pergunta, é se o placeholder do DBI trata caracteres que precisam
> de escape, por exemplo:
>
> Imagine que eu quero inserir o seguinte dado no banco de dados:
>
> 'Espelho d'água'.
>
> Como você deve saber, aspas simples servem para limitar strings(pelo menos
> nos SGBDs que eu conheço). Como
> estou usando ORACLE, e por enquanto não estou usando placeholders(o código
> já estava assim quando cheguei.
> Pretendo modificar, mas não tenho autorização por enquanto), o script para
> simplesmente porque encontra a aspa
> simples, e acha que a string terminou. Pra resolver isso "porcamente",
> basta substituir ' por ''(aspa simples e
> outra aspa simples), que ORACLE vai entender que essa aspa é um
> 'escape'aspa, e irá considerar como parte da
> string.
>
> No entanto imagino que se utilizasse placeholder do DBI, ele resolveria
> isso para mim, já que ele faz uma série
> de verificações. É só curiosidade, não sei se realmente placeholders
> resolvem isso, pois não achei nada na
> documentação(perldoc DBI) sobre isso. Mesmo porque SGBDs diferentes tratam
> isso de maneira diferente. Só queria
> saber se placeholder trata isso automaticamente....
>
>
> De qualquer forma valeu pela sua atenção, Daniel
>
>
> Cheers!
>
>
> --
> André Garcia Carneiro
> Developer(Perl/PHP)
> Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
> Alertas do Yahoo! Mail em seu celular. Saiba mais<http://br.mobile.yahoo.com/mailalertas/>.
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 

"Não ajustar o auto-ajuste" - http://wendel.scardua.net/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20070731/a5ff46c1/attachment.html 


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