Nããão, ele não disse que precisa escapar pro SQL, ele disse que precisa escapar pro Perl:<br><br>Você não pode escrever &#39;Espelho d&#39;Água&#39;&nbsp; no Perl. Mas pode escrever &quot;Espelho d&#39;Água&quot; , ou &#39;Espelho d\&#39;Água&#39; .
<br><br>Até onde sei, o uso de placeholders vai tratar isso automagicamente sim :-)<br><br>(isto é, um&nbsp; -&gt;execute(&quot;Espelho d&#39;Água&quot;) deveria ser seguro)<br><br>[]s<br>Wendel<br><br><div><span class="gmail_quote">
On 7/31/07, <b class="gmail_sendername">Daniel &reg; Antunes</b> &lt;<a href="mailto:danielrantunes@yahoo.com.br">danielrantunes@yahoo.com.br</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><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/(&#39;|&quot;)/\\$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 &reg; Antunes<span class="q"><br><em><font color="#007f40">profissional de informática</font></em><br><em><font color="#007f40">gnu/linux user</font></em> #238553
</span><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;"><span class="q">----- Mensagem original ----<br>De: André Garcia Carneiro &lt;<a href="mailto:andre.garcia.carneir@terra.com.br" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
andre.garcia.carneir@terra.com.br</a>&gt;<br></span>Para: saopaulo-pm &lt;<a href="mailto:saopaulo-pm@mail.pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">saopaulo-pm@mail.pm.org</a>&gt;<br>
Enviadas: Terça-feira, 31 de Julho de 2007 16:14:05<br>Assunto: Re: [SP-pm] Res: DBI - placeholders<div><span class="e" id="q_1141dcc2e53c6f0c_5"><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(&#39;INSERT INTO table VALUES (?,?,?)&#39;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $sth-&gt;execute(&#39;placeholder1&#39;,&#39;2&#39;,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>&#39;Espelho d&#39;água&#39;.&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 &quot;porcamente&quot;, basta substituir &#39; por &#39;&#39;(aspa simples e
<br>outra aspa simples), que ORACLE vai entender que essa aspa é um &#39;escape&#39;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 &quot;São Paulo Perl Mongers&quot; - <a href="http://sao-paulo.pm.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://sao-paulo.pm.org</a><br>
<br>_______________________________________________<br>SaoPaulo-pm mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.pm.org/mailman/listinfo/saopaulo-pm</a></div></span></div></div><br></div></div><span class="q"><br>


      Alertas do Yahoo! Mail em seu celular. <a href="http://br.mobile.yahoo.com/mailalertas/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Saiba mais</a>.
</span></div><br>_______________________________________________<br>SaoPaulo-pm mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br><br>&quot;Não ajustar o auto-ajuste&quot; - <a href="http://wendel.scardua.net/">http://wendel.scardua.net/</a>