Ich habe den folgenden Python-Code:
cursor.execute("INSERT INTO table VALUES var1, var2, var3,")
wobei var1
是整數(shù),var2
和 var3
eine Zeichenfolge ist.
Wie schreibe ich Variablennamen (als Teil des Abfragetextes), ohne Python zu verwenden?
Python DB-API 的不同實(shí)現(xiàn)允許使用不同的占位符,因此您需要找出您正在使用的占位符 - 可能是(例如使用 MySQLdb):
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
或(例如,使用 Python 標(biāo)準(zhǔn)庫(kù)中的 sqlite3):
cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3))
或其他(在 VALUES
之后,您可以有 (:1, :2, :3)
或“命名樣式” (:fee, : fie, :fo)
或 (%(fee)s, %(fie)s, %(fo)s)
,其中您將字典而不是映射作為第二個(gè)參數(shù)傳遞給執(zhí)行
)。檢查您正在使用的 DB API 模塊中的 paramstyle
字符串常量,并在 http://www.python.org/dev/peps/pep-0249/ 查看所有參數(shù)傳遞樣式是什么!
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
請(qǐng)注意,參數(shù)以元組形式傳遞,(a, b, c)
。如果您傳遞單個(gè)參數(shù),則元組需要以逗號(hào)結(jié)尾,(a,)
。
數(shù)據(jù)庫(kù) API 對(duì)變量進(jìn)行正確的轉(zhuǎn)義和引用。注意不要使用字符串格式化運(yùn)算符(%
),因?yàn)?/p>