我有以下代码:
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)
但是我对正确的格式不满意。有人可以帮忙吗?
答案 0 :(得分: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)