python - 将未知数插入 SQLite 数据库

标签 python string sqlite python-2.7

Possible Duplicate:
Passing SQLite variables in Python

我的脚本中有一个函数,它将值传递给类方法,该方法的工作是用接收到的变量填充分配的数据库。问题是,我不确定语法是否正确,因为我不使用普通字符串。方法如下。

def new_response(self, link_pattern, link, response, ref_id=""):
    self.db_cursor.execute('''INSERT INTO tb_memory VALUES 
    (%s, %s, %s, %s)''' % (ref_id, link_pattern, link, response))

最合适的语法方法是什么?

最佳答案

永远不要使用字符串格式来创建 SQL 语句!如果您使用字符串格式化,您的程序将受到可能的 SQL 注入(inject)攻击的影响。 使用 '?' 占位符:

def new_response(self, link_pattern, link, response, ref_id=""):
    self.db_cursor.execute('''INSERT INTO tb_memory VALUES 
    (?, ?, ?, ?)''', (ref_id, link_pattern, link, response))

请参阅documentation用于执行

关于python - 将未知数插入 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946824/

相关文章:

需要 Python 2.6 版,在注册表中找不到

android - 通过参数将 Spannable 应用于 string.xml 中的字符串

javascript - 在 JavaScript 中将字符串 YYMMDD 转换为 YYYYMMDD

c - C 中的字符串数组搜索

android - 使用 SQlite for Android 应用程序创建 FIFO 表

Python:将多个json对象写入一个文件;稍后通过 json.load 打开和加载

python - 当问题是回归问题时,如何计算准确度?

python - Tensorflow 在 Mac 上无法从 Anaconda 运行

javascript - 如何将 sqlite 与 React-Native 一起使用?

android - 在 Android 平板电脑上查看 SQLite 数据 - SQLite 数据库浏览器