Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaki jest najlepszy sposób dynamicznego wybierania nazwy tabeli w czasie wykonywania?

Nie możesz sparametryzować identyfikatora (nazwa tabeli lub nazwa pola) w MySQL, jednak możesz je zmienić za pomocą backticków.

Poniższe zapytanie zostanie wykonane bezpiecznie, ale spowoduje błąd, ponieważ tabela nie istnieje (chyba że z jakiegoś dziwnego powodu faktycznie masz tabelę o takiej nazwie):

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

Zasadniczo możesz używać dynamicznych nazw lub pól, o ile są one ujęte w znaki wsteczne. Aby w ten sposób zapobiec wstrzyknięciu SQL, wszystko, co musisz zrobić, to najpierw usunąć wszelkie błędy:

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. Mysql:Zamień dane na różne wiersze

  2. Jak ustawić domyślny obraz (no_pic.gif) php?

  3. Mysql wyszukuje ciąg i liczbę za pomocą MATCH() AGAINST()

  4. Zapobieganie łączeniu kołowemu, wyszukiwaniu rekurencyjnemu

  5. Konwertuj skrypt MySQL na SQL Server