No, le query preparate (se utilizzate correttamente) garantiranno il corretto escape dei dati per l'esecuzione di query sicure. Li stai usando correttamente, devi solo cambiare una piccola cosa. Perché stai usando il '?' segnaposto, è meglio passare i parametri attraverso il metodo di esecuzione.
$sql->execute(array($consulta));
Fai solo attenzione se lo stai inviando alla tua pagina, la sanificazione del database non significa che sarà sicuro per la visualizzazione all'interno di HTML, quindi esegui anche htmlspecialchars() su di esso.