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