Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa cara terbaik untuk memilih nama tabel secara dinamis saat runtime?

Anda tidak dapat memparameterisasikan pengidentifikasi (nama tabel atau nama field) di MySQL, namun Anda dapat menghindarinya menggunakan backticks.

Kueri berikut akan berjalan dengan aman tetapi menghasilkan kesalahan karena tabel tidak ada (kecuali karena suatu kebetulan Anda benar-benar memiliki tabel bernama seperti ini):

SELECT * FROM `users; DROP TABLE users;`;

Pada dasarnya, Anda dapat menggunakan nama atau bidang dinamis selama mereka diapit dengan tanda centang balik. Untuk mencegah injeksi SQL dengan cara ini, yang perlu Anda lakukan adalah menghapus backtick terlebih dahulu:

tableName = tableName.Replace("`", "");
string commandText = "SELECT COUNT(*) FROM `" + tableName + "`";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara "Unhex" Nomor di MySQL

  2. bagaimana cara mengubah (Memperbarui) nama kolom dalam tabel menggunakan meja kerja MySQL?

  3. Cara membuat kolom peka huruf besar/kecil dengan JPA di MySQL secara otomatis

  4. Pilih informasi dari item terakhir dan gabung ke jumlah total

  5. Kesalahan MySQL 1449:Pengguna yang ditentukan sebagai penentu tidak ada