mysql_real_escape_string
geralmente é suficiente para evitar injeção de SQL. Isso depende de ser livre de bugs, ou seja, há uma pequena chance desconhecida de que seja vulnerável (mas isso ainda não se manifestou no mundo real). Uma alternativa melhor que exclui completamente as injeções de SQL em um nível conceitual é instruções preparadas . Ambos os métodos dependem inteiramente de você aplicá-los corretamente; ou seja, nenhum dos dois irá protegê-lo se você simplesmente estragar tudo de qualquer maneira.