На днях мне понадобилось вставить в таблицу данные из переменной, которая имеет формат - string. Но, я наткнулся на проблему - при использовании переменной длинна которой больше чем один символ возникает
ошибка:Traceback (most recent call last):
File "C:\Users\User\Desktop\s.py", line 23, in
cursorObj.execute('UPDATE id SET used = ? where h = 1',(a))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 3 supplied.
Заранее отвечу на возможные вопросы:
1. при заполнении вручную - не используя переменные, проблем не возникает.
2. все необходимые библиотеки скачаны
вот мой
код(сильно упрощенный):import sqlite3
while 1 == 1:
d = input()
if d == "a":
print('загрузка данных')
con = sqlite3.connect('Emergybot.db')
cursorObj = con.cursor()
cursorObj.execute('create table if not exists id(last_id INTEGER, used TEXT, h INTEGER)')
cursorObj.execute(f"SELECT * FROM id")
if cursorObj.fetchone() == None:
last_id = 0
used_id = """XYZ"""
h = 1
cursorObj.execute("INSERT INTO id VALUES(?, ?, ?);", (last_id, used_id, h))
con.commit()
if d == "s":
con = sqlite3.connect('Emergybot.db')
cursorObj = con.cursor()
a = "asd"
cursorObj.execute('UPDATE id SET used = ? where h = 1',(a))
con.commit()