Privilégiez toujours l'option 2, car elles sont résistantes aux injections SQL. L'option 1 fera pirater votre site en 5 minutes, tandis que les pirates auront du mal à casser l'option 2.
Même en termes de performances, l'option 2 peut être un peu plus rapide.
Cependant :Les noms de table ne peuvent pas être échappés avec le ?
alors n'y allez pas. Assurez-vous simplement que les utilisateurs ne peuvent pas entrer le nom de la table manuellement et vous serez à l'abri des pirates.
-edit-
Pourquoi voudriez-vous de toute façon que les noms de table soient variables ?