Не обновляется база данных sqlite3

При вызове команды C.send база данных server.db должна добавить к выбранному id + 1 count,но этого не происходит.В чём может быть проблема?

import discord
import random
import time
from datetime import datetime,timedelta
from discord.ext import commands
from discord.ext.commands import MissingPermissions
from discord.utils import get
from discord.ext.commands import cooldown, BucketType
import asyncio
import sqlite3
import functools
import operator


bot = commands.Bot(command_prefix = "C.",intents = discord.Intents.all())

@bot.event 
async def on_ready():
       print("Hi!\nBot {NAME} is ready!")
       print('------------------')         
       db = sqlite3.connect('server.db')
       sql = db.cursor()       
       sql.execute("""CREATE TABLE IF NOT EXISTS users (
       id INT,
       name TEXT,
       count INT,
       server_id INT
               
       )""")
       db.commit()
                                                    
       for guild in bot.guilds:     
        guild_id = guild.id
        guild = bot.get_guild(guild_id)
        for member in guild.members:
            role = discord.utils.get(guild.roles, name="role_create")           
            if role not in guild.roles:
                await guild.create_role(name="role_create")
                print(f'Роль для {guild.name} создана!')
                
            if role in member.roles:                
                if sql.execute(f'SELECT id FROM users WHERE id = {member.id}').fetchone() is None:
                    sql.execute(f"INSERT INTO users VALUES ({member.id}, '{member}', 0,  {member.guild.id})")                                                       
                    db.commit()
       else:
        user_id_to_random = []
        for value in sql.execute("SELECT * FROM users"):
            print(value)      
        for user_id_in_sql in sql.execute(f"SELECT id FROM users"):         
            convert = functools.reduce(operator.add, (user_id_in_sql))
            user_id_to_random.append(convert)
        else:                                   
            global r
            r = random.choice(user_id_to_random)


@bot.command()
async def send(ctx):
    sql.execute(f"UPDATE users SET count = count + 1 WHERE id = {r} ")
    db.commit()

bot.run(TOKEN)  

Ответы (1 шт):

Автор решения: Максудов Эмиль

Скорее всего дело в том, что вы создаёте переменные db, sql Локально, попробуйте вынести их за функцию и всё должно заработать

→ Ссылка