Use
mysql_real_escape_string()
ao inserir strings em consultas SQL, não importa de onde vem a entrada. Use
htmlspecialchars()
ou htmlentities()
ao inserir strings no código HTML, não importa de onde venha a entrada. Use
urlencode()
ao inserir valores na string de consulta de uma URL, não importa de onde venham os valores. Se esses dados vierem do usuário, você definitivamente deve fazer essas coisas porque existe a chance de o usuário estar tentando fazer coisas ruins. Mas deixando de lado a segurança - e se você quiser inserir uma string legítima em uma consulta SQL e a string tiver um caractere de aspas simples nela? Você ainda deve escapar disso.