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

Что мне с этим делать?
  • Вопрос задан
  • 1296 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы