此sqlite3查询的正确格式是什么?(Python)

此sqlite3查询的正确格式是什么?(Python),python,sqlite,python-2.7,Python,Sqlite,Python 2.7,我有以下代码: 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) 然而,我不反对正确的格式。有人能帮忙吗 请注意

我有以下代码:

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)

然而,我不反对正确的格式。有人能帮忙吗

请注意,对任何查询使用字符串插值都会带来错误的风险

如果可以确保不会使用恶意代码,则可以使用以下两步过程。
1.表名的字符串插值。
2.将查询参数作为第二个参数传递给
.execute()

(不支持表和/或列名的参数化。)

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