Krótka odpowiedź na Twoje pytanie brzmi „nie”.
W najściślejszym sensie, na poziomie bazy danych, przygotowane instrukcje pozwalają na powiązanie parametrów tylko dla bitów „wartości” instrukcji SQL.
Jednym ze sposobów myślenia o tym jest "rzeczy, które można zastąpić podczas wykonywania instrukcji bez zmiany jej znaczenia". Nazwa(y) tabeli nie jest jedną z tych wartości w czasie wykonywania, ponieważ określa ona ważność samej instrukcji SQL (tj. jakie nazwy kolumn są poprawne), a zmiana jej w czasie wykonywania może potencjalnie zmienić poprawność instrukcji SQL.
Na nieco wyższym poziomie, nawet w interfejsach baz danych, które emulują podstawianie parametrów przygotowanych instrukcji, zamiast faktycznie wysyłać gotowe instrukcje do bazy danych, takie jak PDO, co mogłoby pozwolić na użycie symbolu zastępczego w dowolnym miejscu (ponieważ symbol zastępczy jest zastępowany przed wysłaniem do bazy danych w tych systemach), wartość symbolu zastępczego tabeli byłaby ciągiem i jako taka byłaby zawarta w zapytaniu SQL wysyłanym do bazy danych, więc SELECT * FROM ?
z mytable
ponieważ parametr faktycznie zakończyłby się wysłaniem SELECT * FROM 'mytable'
do bazy danych, co jest nieprawidłowym SQL.
Najlepiej po prostu kontynuować
SELECT * FROM {$mytable}
ale ty absolutnie powinien mieć białą listę tabel, które najpierw sprawdzasz, jeśli ten $mytable
pochodzi z danych wejściowych użytkownika.