Sí, pero un sí calificado.
Debe escapar correctamente el 100% de la entrada. Y debe configurar correctamente los juegos de caracteres (si está utilizando la API de C, debe llamar a mysql_set_character_set()
en lugar de SET NAMES
). Si te pierdes una pequeña cosa, eres vulnerable. Así que sí, siempre y cuando hagas todo bien...
Y esa es la razón por la que mucha gente recomendará consultas preparadas. No porque sean más seguros. Pero debido a que son más indulgentes...