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

Как добавлять переменные в запрос на UPDATE в sqlite?

Вот мой код, делаю простое приложение.
sql = 'SELECT money FROM base WHERE nickname LIKE "%s"'% username
cursor.execute(sql)
for x in cursor.execute(sql):
    money = x[0]
money += 1
sql = 'UPDATE base SET money=? WHERE nickname LIKE ?', (money, username)
 cursor.execute(sql)

Выдает ошибку:
Traceback (most recent call last):
  File "C:/Users/Admin/Desktop/Bot/bot.py", line 74, in <module>
    main()
  File "C:/Users/Admin/Desktop/Bot/bot.py", line 57, in main
    cursor.execute(sql)
  File "d:\build\apsw\apsw-3.12.2-r1\src\cursor.c", line 1019, in APSWCursor_execute.sqlite3_prepare
TypeError: coercing to Unicode: need string or buffer, tuple found

Что мне с этим делать?
  • Вопрос задан
  • 1337 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
sim3x
@sim3x
sql = 'UPDATE base SET money=? WHERE nickname LIKE ?', (money, username)
cursor.execute(*sql)

# OR
sql = 'UPDATE base SET money=? WHERE nickname LIKE ?'
data = (money, username)
cursor.execute(sql, data)


почитай про args kwargs
почитай мануал по использованию execute
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
18 янв. 2025, в 10:04
50000 руб./за проект
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект