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()
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Вот этот кусок вызывает сомнения
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. Тебе что, букв на имена мало выдали? :/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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