<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>&nbsp;&nbsp;&nbsp; Opa André, desculpe...</DIV>
<DIV>&nbsp;&nbsp;&nbsp; Me empolguei na minha primeira contribuição no SP-PM.</DIV>
<DIV>&nbsp;&nbsp;&nbsp; Foi mal; infelizmente eu tbem não sei te responder, no entanto um outro amigo (o Rudolfo Rosa)&nbsp;respondeu que&nbsp;vc deve escapar manualmente.</DIV>
<DIV>&nbsp;&nbsp;&nbsp; Nada que uma expressãozinha do tipo :</DIV>
<DIV>&nbsp;</DIV>
<DIV>s/('|")/\\$1/g</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; Não&nbsp;resolva,&nbsp;;)</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;Valeu, abraço.<BR>&nbsp;</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 &lt;andre.garcia.carneir@terra.com.br&gt;<BR>Para: saopaulo-pm &lt;saopaulo-pm@mail.pm.org&gt;<BR>Enviadas: Terça-feira, 31 de Julho de 2007 16:14:05<BR>Assunto: Re: [SP-pm] Res: DBI - placeholders<BR><BR>
<DIV>&gt; Oi André,<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vou te dar um exemplo de placeholders :<BR>&gt; <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $sth=$dbh-&gt;prepare('INSERT INTO table VALUES (?,?,?)');<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $sth-&gt;execute('placeholder1','2',3);<BR>&gt; <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Consiste em vc utilizar no comando SQL o ? ao invés dos dados diretamente.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; No exemplo ele vai trocar o (?,?,?) pelos três dados fornecidos no execute.<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 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'.&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>