На днях мне понадобилось вставить в таблицу данные из переменной, которая имеет формат - 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()