P粉7812356892023-08-22 15:40:51
不同的Python DB-API實作允許使用不同的佔位符,所以你需要找出你正在使用的是哪種佔位符 -- 例如(使用MySQLdb):
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
或(使用Python標準函式庫中的sqlite3):
cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3))
或其他方式(在VALUES
之後,你可以使用(:1, :2, :3)
,或使用"named styles" (:fee, :fie, :fo)
或(%(fee)s, %(fie)s, %(fo)s)
,在這種情況下,你需要將一個字典作為第二個參數傳遞給execute
函數)。檢查你正在使用的DB API模組中的paramstyle
字串常數,並查看http://www.python.org/dev/peps/pep-0249/上的paramstyle ,了解所有的參數傳遞方式!
P粉7636623902023-08-22 15:33:14
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
請注意參數是作為一個元組傳遞的,(a, b, c)
。如果您只傳遞一個參數,元組需要以逗號結尾,(a,)
。
資料庫API會對變數進行適當的轉義和引用。請注意不要使用字串格式化運算子(%
),因為