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 'Espelho d'Água' no Perl. Mas pode escrever "Espelho d'Água" , ou 'Espelho d\'Água' .
<br><br>Até onde sei, o uso de placeholders vai tratar isso automagicamente sim :-)<br><br>(isto é, um ->execute("Espelho d'Água") deveria ser seguro)<br><br>[]s<br>Wendel<br><br><div><span class="gmail_quote">
On 7/31/07, <b class="gmail_sendername">Daniel ® Antunes</b> <<a href="mailto:danielrantunes@yahoo.com.br">danielrantunes@yahoo.com.br</a>> 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> 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<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 <<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>><br></span>Para: saopaulo-pm <<a href="mailto:saopaulo-pm@mail.pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">saopaulo-pm@mail.pm.org</a>><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>> 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" 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>"Não ajustar o auto-ajuste" - <a href="http://wendel.scardua.net/">http://wendel.scardua.net/</a>