Задать вопрос
@Daniel1200

Почему — при попытке обновить данные в таблице, при помощи переменной формата str которая длиннее одного символа происходит ошибка?

На днях мне понадобилось вставить в таблицу данные из переменной, которая имеет формат - 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()
  • Вопрос задан
  • 41 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Запятая пропущена.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы