2012-06-29 30 views
1

我有以下代碼:此sqlite3查詢的正確格式是什麼? (Python)的

def add_record(self,values): 
    self.sql.execute("INSERT INTO TEST VALUES (?,?)" % values) 

,我想調整它,以適應用戶定義的表,例如:

def add_record(self,tablename,values): 
     self.sql.execute("INSERT INTO TEST VALUES (?,?)" % values) 

但是我沒有在正確的發售者格式。有人可以幫忙嗎?

回答

2

請注意,對任何查詢使用字符串插值會帶來SQL-injection attack的風險。

如果您確定不會使用惡意代碼,則可以使用以下兩步過程。
1.表名稱的字符串插值。 (不支持的表 - 和/或列的名稱參數化。)
2.傳遞查詢參數作爲第二個參數,以.execute()

def add_record(self, tablename, values): 
    the_query = "INSERT INTO {:s} VALUES (?,?);".format(tablename) 
    self.sql.execute(the_query, values) 
相關問題