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,))
