[英]how to insert string into query in python pymysql
我有以下查詢:
cursor = connection.cursor()
query = """
SELECT *
FROM `my_database`.table_a
"""
result = cursor.execute(query)
按預期工作。 但我需要更改my_database
中的cursor.execute
。 我嘗試:
cursor = connection.cursor()
query = """
SELECT *
FROM %s.table_a
"""
result = cursor.execute(query, ("my_database",))
這給出了錯誤pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''my_database'.table_a at line 2")
請問如何在cursor.execute
中插入數據庫名稱?
不可能在准備好的語句中使用占位符綁定數據庫名稱(或任何其他數據庫 object 名稱)。 除其他問題外,這將是一個安全風險。 但是,您可以在此處改用 f 字符串:
cursor = connection.cursor()
db_name = "my_database"
query = f"""
SELECT *
FROM {db_name}.table_a
"""
result = cursor.execute(query)
還應該提到的是,如果您確定數據庫名稱不是來自您自己的應用程序外部,則以上僅是 SQL 注入安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.