Ol�, Pequeno Gafanhoto! Grande revolta eu ver... A necessidade de s�mbolos de escape (tipicamente o backslash) vem da necessidade de inserir em strings s�mbolos que n�o poderiam (ou dariam trabalho para) ser inseridos de outra forma. Caracteres especiais, como TAB, CR e LF, n�o tem uma representa��o gr�fica. Por isso, linguagens como C utilizam representa��es como \t e \n. Outros s�mbolos, como " e ', s�o usados como delimitadores. Bancos de dados como MySQL usam \" e \'. O Oracle (um dos "grandes SGBDs" a que voc� se referiu) parece usar '' (pelo menos neste exemplo: btitle 'from G. B. Talbot''s Ledger'). Em PHP, o $ indica o nome de vari�veis. Assim, para imprimir um $, voc� precisa escrever \$. Na verdade, o que voc� aponta como um defeito do MySQL, � uma constante em diversas linguagens e, por isso, tem suas pr�prias solu��es. O PHP, por exemplo, pode fazer o tratamento autom�tico dos dados que chegam de um formul�rio, adicionando um backslash a caracteres como \,' e " - a op��o magic_quotes_gpc j� vem ligada por default no php.ini. Se preferir, voc� pode fazer isso explicitamente com a fun��o addslashes(). Se voc� n�o fizer nenhum tratamento dos dados fornecidos pelo usu�rio, fica f�cil de fazer uma SQL injection e emendar no seu SELECT um DROP TABLE bairro ou coisa pior. Mesmo que com outro SGBD voc� n�o tivesse o problema do backslash, um sistema decente ainda teria que verificar os dados antes de rodar o SQL.
Augusto ----- Original Message ----- From: "Leonardo Pinto" <[EMAIL PROTECTED]> To: "Lista Conectiva (E-mail)" <[EMAIL PROTECTED]> Sent: Thursday, July 15, 2004 11:40 AM Subject: (linux-br) MySQL n�o aceita "\" em WHERE 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, Leonardo Pinto OpenLogic Inform�tica Ltda. Tel.: (71) 316-1235/8822-1727 [EMAIL PROTECTED] --------------------------------------------------------------------------- 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
