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

Zmienne MySQLdb w Pythonie jako nazwy tabel

Wygląda na to, że to jest twoja instrukcja SQL:

cursor.execute("INSERT INTO %s (description, url) VALUES (%s, %s);", (table_name.encode("utf-8"), key.encode("utf-8"), data[key].encode("utf-8")))

IIRC, nazwa tabeli nie możliwość parametryzacji (ponieważ jest niewłaściwie cytowany). Musisz wstrzyknąć to do ciągu w inny sposób (najlepiej bezpiecznie — sprawdzając, czy żądana nazwa tabeli pasuje do zestawu nazw tabel z białej listy)... np.:

_TABLE_NAME_WHITELIST = frozenset(['four'])

...
if table_name not in _TABLE_NAME_WHITELIST:
    raise Exception('Probably better to define a specific exception for this...')

cursor.execute("INSERT INTO {table_name} (description, url) VALUES (%s, %s);".format(table_name=table_name),
    (table_name.encode("utf-8"),
     key.encode("utf-8"),
     data[key].encode("utf-8")))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Miękkie usuwanie MySql

  2. zdobądź SUMA każdej Osoby według PersonID

  3. Pobieranie ostatniego rekordu w każdej grupie - MySQL

  4. PHP :Niezdefiniowana funkcja mysql_connect()

  5. Jak dołączyć schemat bazy danych MySQL na GitHub?