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

标签 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)

但是我不喜欢正确的格式。有人可以帮忙吗?

最佳答案

请注意,在任何查询中使用字符串插值都会带来 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)

关于python - 此 sqlite3 查询的正确格式是什么? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266772/

相关文章:

python - Python 中的条件嵌套循环

php - sqlite登录表单无法正常工作

python - Python 中的 SSLSocket 口令/密码

python - Django 休息框架覆盖 ViewSet 中的 page_size

python - 合并多索引 Pandas 数据帧

python - 如何在 Tweepy 中检查推文中的图像使用

java - Android SQLite 从空表中获取列列表

objective-c - iOS - cellForRowAtIndexPath SQLite 排序数据?

python - 无法弄清楚为什么代码在 Python 3 中工作,而不是 2.7

python - 如何在 Python 中将包含几行的字符串转换为每个单元格包含一行的列表?