【问题标题】:Incorrect number of bindings supplied - Python提供的绑定数量不正确 - Python
【发布时间】:2016-01-21 15:48:15
【问题描述】:

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

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 获取信息

【问题讨论】:

    标签: python mysql database


    【解决方案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 是什么,我们无法提供进一步的帮助。

    【讨论】:

    • 好的,非常感谢。结果是有关网络爬虫提供的 IP 地址的信息。抱歉没有更具体
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 2011-06-06
      • 1970-01-01
      • 2013-02-09
      • 2015-12-06
      • 2013-10-28
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多