SQLite UPDATE命令不更改数据库

时间:2019-07-02 07:35:17

标签: python-3.x sqlite

我正在开发一种不和谐的机器人,该机器人具有一种经济系统,可以选择相互“决斗”以赚钱。之所以出现问题,是因为我似乎无法获得UPDATE语句来实际更新数据库。

我在sqlite3中使用python 3.6.8。我100%确信由于显示的print语句,脚本正在调用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,则机器人除了回复外别无选择。

0 个答案:

没有答案