Quem nunca se deparou com o erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''texto'')' at line 1
O erro ocorre porque a aspa causa uma confusão no comando SQL, veja porque:
Imagine a seguinte linha:
mysql_query("INSERT INTO tabela(texto) VALUES('texto 'com' aspas')");A palavra com está entre aspas simples, o que causa uma confusão no comando..
Repare as aspas antes de texto e depois de aspas, elas delimitam o texto que será inserido no banco de dados, e essas aspas que estão no meio do texto fazem com que o SQL se confunda.
A solução para isso seria colocar as aspas com Caractere de Escape, dessa forma:
mysql_query("INSERT INTO tabela(texto) VALUES('texto \'com\' aspas')");As contra-barras informam ao SQL que aquelas aspas devem ser inseridas também no banco de dados.
Mas como adicionar contra-barras em todo o meu texto???
É aqui que vem o segredo... Basta usar a função addslashes() que ela faz todo o trabalho pra você.
Dessa forma:
$texto = "Texto que 'contem' aspas'''''";
$texto = addslashes($texto);
echo $texto;
A saída será: Texto que \'contem\' aspas\'\'\'\'\'
Com isso você conseguirá cadastrar textos em seu banco de dados normalmente..
Ver também:
addslashes()
stripslashes()
Caractere de Escape
Até o proximo post!! ;)