OhMySenpai
@OhMySenpai
Начинающий программист

Не меняется значение в sq3lite python?

Привет, Хабр! Столкнулся с проблемой, я делаю игрового бота для карточных игр, делаю "админ панель" чтобы изменять баланс игрокам. Через регулярку вывел все нужное, все хорошо работает, но как вы уже поняли кроме одного изъяна, баланс не меняется. Надеюсь что поможете, заранее спасибо! Библиотеки которые использую: re, random, sq3lite, vk_api, time. Приложил только часть где не работает, остальное функционирует нормально
Изменено: чтобы поменять баланс пишу "Изменить баланс "айди" "сумма"(без кавычек)"
elif "изменить баланс" in body.lower():          	
            	z=body.lower()
            	a = re.split(r'\W+', z)
            	b = a[2] #id
            	d = a[3] #balance
            	user_info = vk.method("users.get", {"user_ids": id, "fields": "first_name"})
            	user_id= user_info[0]["id"]
            	gg = тут мой айди
            	if user_id == gg:
            		vk.method("messages.send", {"peer_id": b, "message": "Ваш игровой баланс пополнен на " + str(d) + " йен.Приятной игры!", "random_id": random.randint(1, 2147483647)})
            		vk.method("messages.send", {"peer_id": id, "message": "Баланс пользователя успешно пополнен.", "random_id": random.randint(1, 2147483647)})
            		connection = sql.connect("user.sqlite", check_same_thread=False) 
            		q = connection.cursor()
            		q.execute("SELECT * FROM user_info WHERE User_ID = %s" % (b)) 
            		q.execute("UPDATE user_info SET Balance = '%s' WHERE User_ID = '%s'" % (+ d, b)) or print("es")
            		print("balance changes")
            		connection.commit()
            		connection.close()
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
Вот этот кусок вызывает сомнения
q.execute("UPDATE user_info SET Balance = '%s' WHERE User_ID = '%s'" % (+ d, b)) or print("es")

По-моему, там должно быть что-то вроде:
q.execute("UPDATE user_info SET Balance = Balance + '%s' WHERE User_ID = '%s'" % (d, b)) or print("es")


Но, кстати, почему ты переменные не именуешь нормально? Что это за b, d... пиши везде balance, id. Тебе что, букв на имена мало выдали? :/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Грузовичкоф Санкт-Петербург
от 250 000 ₽
OnederX Москва
от 100 000 до 120 000 ₽
NatsON Москва
от 220 000 до 350 000 ₽
15 авг. 2020, в 05:42
50000 руб./за проект
15 авг. 2020, в 05:23
5000 руб./за проект
15 авг. 2020, в 04:49
5000 руб./за проект