Preferisci sempre l'opzione 2, poiché sono a prova di SQL injection. L'opzione 1 farà hackerare il tuo sito entro 5 minuti, mentre gli hacker avranno difficoltà a violare l'opzione 2.
Anche con le prestazioni, l'opzione 2 potrebbe essere un po' più veloce.
Tuttavia :non è possibile eseguire l'escape dei nomi delle tabelle con il ?
quindi non andateci. Assicurati solo che gli utenti non possano inserire manualmente il nome della tabella e sarai al sicuro dagli hacker.
-modifica-
Perché dovresti comunque rendere i nomi delle tabelle variabili?