【问题标题】:An issue with inserting blob data into SQL tables将 blob 数据插入 SQL 表的问题
【发布时间】:2019-05-07 08:21:03
【问题描述】:

我正在尝试创建一个代码片段,该代码片段将我创建的一个对象插入到一个 SQL 表中,该对象以非常特定的方式作为 blob 类型存储数据,并且它不断给我一个' sqlite3.InterfaceError: Error binding参数 1 - 可能是不受支持的类型。错误。 你们有没有人遇到过类似的事情?你有任何想法如何处理它?

        conn = sqlite3.connect('my_database.db')
        c = conn.cursor()
        params = (self.question_id, i) #i is the object in question
        c.execute('''
                INSERT INTO '''+self.current_test_name+''' VALUES (?, ?)
                ''',params)
        conn.commit()
        conn.close()

【问题讨论】:

    标签: python-3.x sqlite


    【解决方案1】:

    对于初学者来说,这将是一个更合适的执行语句,因为它更简洁:

    c.execute("INSERT INTO "+self.current_test_name+" VALUES (?, ?)", (self.question_id, i))
    

    您还缺少要插入的表(如果self.current_test_name 是表名,则缺少列。) 此外,数据库设置中的列是否用于处理为self.question_idi 提供的输入的数据类型? (当您提供INT 时,不期望TEXT?)

    将工作脚本插入到具有名为testtest2 的两列的表中的示例:

    import sqlite3
    
    conn = sqlite3.connect('my_database.db')
    c = conn.cursor()
    
    c.execute("CREATE TABLE IF NOT EXISTS test(test INT, test2 INT)")
    conn.commit()
    
    for i in range(10):
        params = (i, i)  # i is the object in question
        c.execute("INSERT INTO test (test, test2) VALUES (?, ?)", params)
        conn.commit()
    conn.close()
    

    【讨论】:

      猜你喜欢
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2019-10-10
      相关资源
      最近更新 更多