Desinfección una cadena sirve para que se ajuste a ciertas expectativas. FILTER_SANITIZE_EMAIL
elimina los caracteres de una cadena que no serían válidos en un correo electrónico. Se garantiza (supuestamente) que el resultado se ajustará a la sintaxis de la dirección de correo electrónico. Lo útil que es eliminar aleatoriamente caracteres de una cadena, lo dejaré en tus manos. (Sugerencia:no creo que sea muy útil; debería rechazar las direcciones no válidas en lugar de transformarlas en resultados aleatorios. Le doy una dirección de correo electrónico no válida, la martilla en una forma que se parece a una dirección de correo electrónico, ahora cómo ¡¿Sabes que podrás enviarme un correo electrónico...?!)
mysql_real_escape_string
está ahí para garantizar que una cadena arbitraria no viole la sintaxis literal de cadena de SQL escapando todos los caracteres dignos de escape. Suponiendo que lo esté usando correctamente (hay muchas trampas que mysql tiene, razón por la cual está en desuso...), no hay nada que pueda hacer con su entrada que lo haga fallar. Le das cualquier cadena arbitraria, te devuelve la versión escapada, punto.
Como tal, en general, sí, lo que estás haciendo está bien. Si mysql_real_escape_string
es el último lo que haces con tu cadena antes de interpolarla en un literal de cadena SQL, entonces está bien.