Я хочу передать строковое значение и целочисленное значение в sqlite3, выполнить команду UPDATE
, num
переменная должна быть Int type
, а ans
переменная должна быть String type
чтобы я мог правильно изменить содержимое таблицы.
таблица:
q_conn = sqlite3.connect('questions_stack.db')
q_c = q_conn.cursor()
q_c.execute("""CREATE TABLE IF NOT EXISTS questions (
id INTEGER PRIMARY KEY,
topic TEXT,
username TEXT,
subject TEXT,
body TEXT,
likes INTEGER,
comments TEXT)
""")
здесь я пытаюсь UPDATE
определенный столбец определенной строки: def update_comments ():
q_c.execute("""SELECT comments FROM questions WHERE id = ?""", (int(num),))
previous_comments = q_c.fetchone()
q_c.execute("""UPDATE questions SET comments = ? WHERE id = ?""",
(str(previous_comments) + "\n" + str(ans), int(num)))
q_conn.commit()
однако в моей таблице базы данных questions
sqlite3 сделанное мной обновление столбца comments
выглядит так:
(u'',)
comment1
и когда функция update_comments()
вызывается снова, столбец комментариев содержит:
(u"(u'',)\ncomment1",)
comment2
в чем проблема? и как я могу это исправить? это как-то связано с тем, что я передал в команду значения INT и STRING?