Sigues sin entender.
El objetivo del método prepare() no es escapar toda la consulta, es preparar la consulta (de ahí el nombre) para insertar los valores a tiempo, y así se escapan automáticamente.
Del modo en que lo haces simplemente estás desperdiciando dicho uso, y por ende sigues teniendo fallas de seguridad.
¿Por qué no lees el manual?