提供的绑定数量不正确 - Python



我在 eclipse 中使用带有 mySQL 连接器的 Pydev。我正在编写代码以从代码输出中获取信息并将其放入数据库中。但是我收到错误

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

这是代码,任何帮助将不胜感激:

try:
    cursor.execute('''CREATE TABLE ipinfo
           (SEARCH_ASN TEXT NOT NULL,
           SEARCH_ASN_CIDR TEXT NOT NULL,
           SEARCH_COUNTRY_CODE TEXT NOT NULL,
           SEARCH_DATE DATE NOT NULL,
           SEARCH_REGISTRY TEXT NOT NULL)''')
    print "Table created successfully";
except:
    pass
cursor.close()

object = IPWhois('ip address')
results = obj.lookup_rdap(depth=1)
cursor = sqlite3.connect('test.db')
cursor.execute("INSERT INTO ipinfo(SEARCH_ASN, SEARCH_ASN_CIDR, SEARCH_COUNTRY_CODE, SEARCH_DATE, SEARCH_REGISTRY) 
        VALUES(?,?,?,?,?)")
cursor.commit()
cursor.close()

结果获取信息 使用网络爬虫清理 IP

在这里:

cursor.execute("INSERT INTO ipinfo(SEARCH_ASN, SEARCH_ASN_CIDR, SEARCH_COUNTRY_CODE, SEARCH_DATE, SEARCH_REGISTRY) 
        VALUES(?,?,?,?,?)")

您正在发送参数化的insert查询,但未提供要插入的值。这应该看起来像这样:

sql = "INSERT INTO ipinfo(SEARCH_ASN, SEARCH_ASN_CIDR, SEARCH_COUNTRY_CODE, SEARCH_DATE, SEARCH_REGISTRY)           VALUES(?,?,?,?,?)"
values = (value1, value2, value3, value4, value5)     
cursor.execute(sql, values)

我假设您想从results变量中获取值,但由于我们不知道results是什么,因此我们无法进一步提供帮助。

您尚未提供任何数据。
插入语句如下所示(例如):

new_db.execute("insert into Recent(Filename,TimeStamp,Icon) values (?,?,?)", 
                (x['Filename'],x['TimeStamp'],x['Icon']))

最新更新