将Blob数据插入SQL表的问题

时间:2019-05-06 21:24:51

标签: python-3.x sqlite

我正在尝试创建一个代码段,该代码段将我创建的用于以特定方式存储数据的对象作为Blob类型插入到SQL表中,并且一直给我一个'sqlite3.InterfaceError:错误绑定参数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()

1 个答案:

答案 0 :(得分:0)

对于初学者来说,这将是更合适的execute语句,因为它更干净:

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

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

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

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