Jawaban singkat untuk pertanyaan Anda adalah "tidak".
Dalam arti yang paling ketat, pada tingkat database, pernyataan yang disiapkan hanya mengizinkan parameter untuk terikat pada bit "nilai" dari pernyataan SQL.
Salah satu cara berpikir ini adalah "hal-hal yang dapat diganti pada saat eksekusi pernyataan tanpa mengubah artinya". Nama tabel bukan salah satu dari nilai runtime tersebut, karena menentukan validitas pernyataan SQL itu sendiri (yaitu, nama kolom apa yang valid) dan mengubahnya pada waktu eksekusi berpotensi mengubah apakah pernyataan SQL valid.
Pada tingkat yang sedikit lebih tinggi, bahkan dalam antarmuka database yang meniru substitusi parameter pernyataan yang disiapkan daripada benar-benar mengirim pernyataan yang disiapkan ke database, seperti PDO, yang memungkinkan Anda untuk menggunakan placeholder di mana saja (karena placeholder diganti sebelum dikirim ke database di sistem tersebut), nilai placeholder tabel akan menjadi string, dan diapit seperti itu di dalam SQL yang dikirim ke database, jadi SELECT * FROM ?
dengan mytable
karena param pada akhirnya akan mengirim SELECT * FROM 'mytable'
ke database, yang merupakan SQL yang tidak valid.
Taruhan terbaik Anda adalah melanjutkan dengan
SELECT * FROM {$mytable}
tapi Anda benar-benar harus memiliki daftar putih tabel yang Anda periksa terlebih dahulu jika $mytable
itu berasal dari masukan pengguna.