Команда Sqlite UPDATE не меняет БД - PullRequest
0 голосов
/ 02 июля 2019

Я занимаюсь разработкой несогласного бота с экономичной системой с возможностью «дуэли» друг друга за деньги.Проблема возникает из-за того, что я не могу получить инструкцию UPDATE для фактического обновления базы данных.

Я использую python 3.6.8 с sqlite3.Я на 100% уверен, что скрипт вызывает там, где выполняется метод UPDATE, как показано из-за показанных операторов печати.Оператор UPDATE работает в других частях скрипта последовательно.После каждого пользовательского сообщения есть оператор Commit, поэтому не должно быть (насколько мне известно) проблем с блокировкой БД.

if(roll > 50):
    print('More than 50')
    db.execute('UPDATE userInfo SET wallet=? WHERE UID=?', (messageWallet + poster[1], message.author.id))
    db.execute('UPDATE userInfo SET wallet=? WHERE UID=?', (posterWallet - poster[1], posterMember.id))
    await message.channel.send(f'You **BEAT** {client.get_user(poster[0])} winning yourself {poster[1] * 2}:gem:')
elif(roll < 50):
    print('less than 50')
    db.execute('UPDATE userInfo SET wallet=wallet+? WHERE UID=?', (posterWallet + poster[1], posterMember.id))
    db.execute('UPDATE userInfo SET wallet=wallet-? WHERE UID=?', (messageWallet - poster[1], message.author.id))
    await message.channel.send(f'You **LOST** to  {client.get_user(poster[0])}, they took {poster[1]}:gem:')
elif(roll == 50):
    print('exactly 50')
    await message.channel.send(f'Wow a tie! Both of you get your money back!')
return

what happens in the terminal

Я ожидаю, что бот вычитает деньги, если бросок <50, и добавляет деньги, если бросок> 50, наконец, если роль сама 50, тогда бот не должен ничего делать, кроме ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...