python - 如何将包含 '/' 的值插入到 sqlite 中?

标签 python python-3.x

conn = sqlite3.connect(self.__database_name)
c = conn.cursor()
sql = 'INSERT OR IGNORE INTO ' + self.__article_url_table_name + ' (url) values (%s)' % (href)
c.execute(sql)
conn.commit()

我在调用的行中收到以下错误:c.execute(sql)

sqlite3.OperationalError: near "/": syntax error

url 变量是一个包含 url 的字符串,如:https://www.foo.com/bar.html

我的代码有什么错误?

最佳答案

您不应该使用字符串插值来编写 SQL 查询。除了您遇到的问题外,它还使您容易受到 SQL 注入(inject)的影响。改用参数:

sql = 'INSERT OR IGNORE INTO ' + self.__article_url_table_name + ' (url) values (?)'
c.execute(sql, (href,))

关于python - 如何将包含 '/' 的值插入到 sqlite 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48320642/

相关文章:

python-3.x - Python编译器将 print 函数中的 10^-16 添加到答案中

javascript - 相当于 Javascript 中的 Python 目录

c# - 连接 C# 后端和 PHP 前端

python - Django注释相关字段

python - 在 Python 3.5 中,无法导入 zenity

python - 如何在模块中定义与 __all__ 分开的 `from ... import *' api?

python - 如何从编译的 .exe 文件将帮助打印到终端窗口?

python-3.x - 具有可变长度多项式的曲线拟合

python - 在 CSV 中嵌入 JSON 的正确格式

python - Pandas 跳过 map 函数中的缺失值