On Thu, 15 Jul 2004, Leonardo Pinto wrote:
>
> Ol� Linuxers,
>
> Estou muito decepcionado com o MySQL. Sei que existem
> "N"s argumentos para este comportamento. Por�m n�o aceito
> como resposta nenhum deles. O fato � que: Imaginem um
> campo bairro onde um usu�rio digita "S�O MIGUEL\S�O RAFAEL"
> E ap�s isto ele deseja fazer uma consulta:
> select * from BAIRRO where CAMPO1 = "S�O MIGUEL\S�O RAFAEL"
> Simplesmente esta situa��o n�o poder� ser realizada, pois
> o pequeno projeto MySQL n�o suporta "\", ele achar� que
> estamos editando um arquivo com linefeeds. heerrrgrrrrr
>
> Sds,
Vamos ver isso de perto...
Em muitas linguagens de programa��o, existem os chamados caracteres e
palavras reservadas. Estes n�o podem ser usando para formar textos ou
outros objetos que v�o compor o programa.
No caso dos caracteres, quando se precisa usar um desses reservados,
usamos um deles que se chama 'scape', que normalmente eo "\".
No seu exemplo acima ficaria:
select * from BAIRRO where CAMPO1 = 'S�O MIGUEL\\S�O RAFAEL';
Repare que tbm usei aspas simples no lugar das duplas.
Uma regra e, jamais mande o que o usu�rio digitou diretamente para um
comando sql. Passe antes por um filtro.
No caso do php, existe a fun��o addslashes() que coloca a barra antes do
caracteres reservados.
Paulino
_________________________________ ________________________________________
Paulino Kenji Sato | Sistema de Ensino Nobel
http://www.nobel.com.br | Maringa Pr Brasil
---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html