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

Variabel Python MySQLdb sebagai nama tabel

Sepertinya ini adalah pernyataan SQL Anda:

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, nama tabel tidak dapat diparameterisasi (karena dikutip dengan tidak benar). Anda harus memasukkannya ke dalam string dengan cara lain (sebaiknya dengan aman -- dengan memeriksa apakah nama tabel yang diminta cocok dengan kumpulan nama tabel yang masuk daftar putih)... mis.:

_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. Optimasi MySQL berdasarkan penjelasan

  2. Kotak Dropdown Dependen CakePHP 3

  3. Peringatan:mysqli::mysqli():(HY000/1045):Akses ditolak untuk 'database'@'localhost' pengguna (menggunakan kata sandi:NO) di

  4. Python Twisted dan koneksi database

  5. Tabel MySQL dengan kolom TEXT