Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Biến MySQLdb trong Python làm tên bảng

Có vẻ như đây là câu lệnh SQL của bạn:

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, tên của bảng không có thể được tham số hóa (vì nó được trích dẫn không đúng cách). Bạn sẽ cần phải đưa điều đó vào chuỗi theo một cách khác (tốt nhất là an toàn - bằng cách kiểm tra xem tên bảng được yêu cầu có khớp với tập hợp tên bảng trong danh sách trắng) ... ví dụ:

_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. Lưu mảng PHP vào MySQL?

  2. Cách tạo cơ sở dữ liệu từ tập lệnh trong MySQL

  3. Làm cách nào để giới hạn kích thước của các bảng tạm thời?

  4. MySQL:SUM () với JOIN trả về giá trị không chính xác

  5. Có thể chạy hai phiên bản vùng chứa docker trên một vùng chứa cơ sở dữ liệu mysql không?