Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв е най-добрият начин да изберете име на таблица динамично по време на изпълнение?

Не можете да параматеризирате идентификатор (име на таблица или име на поле) в MySQL, обаче, можете да ги избягате с помощта на обратни отметки.

Следната заявка ще се изпълнява безопасно, но ще доведе до грешка, тъй като таблицата не съществува (освен ако по някакъв странен случай всъщност нямате таблица с такова име):

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

По принцип можете да използвате динамични имена или полета, стига да са затворени в обратни отметки. За да предотвратите инжектирането на SQL по този начин, всичко, което трябва да направите, е първо да премахнете всички обратни точки:

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. непоследователно отстъп с Python след разделяне

  2. Как да извлека две последователни цифри от текстово поле в MySQL?

  3. MySQL:Обобщете всички редове в таблицата в една заявка

  4. Как да създадете mysql kubernetes услуга с локално монтиран обем данни?

  5. Вмъкнете възможно най-ниското уникално цяло число по атомен начин в MySql