sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用0,并且提供了2

时间:2016-10-29 11:11:35

标签: sqlite

我正在抓取某个网站以获取某些细节,然后从那里我想将它们保存在数据库中,下面是上述任务的功能:

def store(title, body):
    conn = sqlite3.connect('test2.db')
    print("Connection established")
    conn.execute("insert into crawled (title, body) values (\"%s\", \"%s\");",(title, body))
    conn.commit()
    print("Records Created Successfully")
    conn.close()

但我一直收到这个错误:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 2 supplied

我已经浏览了 Stack 中的所有可用解决方案,但没有人解决我的问题,可以请,请有人在那里向我显示我的错误。

1 个答案:

答案 0 :(得分:0)

问题似乎源于一个小的语法错误。

对于执行命令,请使用:

conn.execute("insert into crawled (title, body) values (\"%s\", \"%s\");" %(title, body))

请注意%开头的%(title, body)以及之前没有逗号。

或者:

conn.execute("insert into crawled (title, body) values (?, ?);",(title, body))

请注意括号前的逗号以及?周围缺少引号。

sqlite3 documentation应该包含所需的所有信息。请注意,它提到使用选项二更好,以避免潜在的SQL注入攻击。