Нет, подготовленные запросы (при правильном использовании) обеспечат правильное экранирование данных для безопасного запроса. Вы как бы используете их правильно, просто нужно изменить одну маленькую вещь. Потому что вы используете '?' заполнитель, лучше передать параметры через метод execute.
$sql->execute(array($consulta));
Просто будьте осторожны, если вы выводите это на свою страницу, санация базы данных не означает, что она будет безопасна для отображения в HTML, поэтому запустите на ней также htmlspecialchars ().