Для начала, это было бы более подходящим оператором execute, так как он чище:
c.execute("INSERT INTO "+self.current_test_name+" VALUES (?, ?)", (self.question_id, i))
Вам также не хватает таблицы, в которую вы вставляете (или столбцы, если self.current_test_name
- таблицаname.) Кроме того, находится ли столбец в настройке базы данных для обработки типа данных для предоставленного ввода для self.question_id
и i
?(Не ожидая TEXT
, когда вы указали INT
?)
Пример рабочего скрипта для вставки в таблицу с двумя столбцами с именами test
и test2
:
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()