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/