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

时间:2016-01-21 15:48:16

标签: python mysql database

我在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()

结果需要使用webcrawler的信息来获取信息

2 个答案:

答案 0 :(得分:1)

下面:

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是什么,我们无法继续帮助。

答案 1 :(得分:0)

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

ajax="false"