Как заносить ники людей из дискорда в базу данных sqlite3?

Хочу создать команду, при которой ник пользователя, который ввёл команду, будет заноситься в базу данных. Также вместе с его ником занесётся и n-ое количество опыта и n-ое количество монет (т.е. 3 столбика) Умоляю, помогите! Как это сделать? Мой код:

from os import curdir
from discord.ext import commands
import discord
from random import *
import sqlite3

TOKEN = ""

# Задать переменные
bot = commands.Bot(command_prefix=('!'))
bot.remove_command( 'help' )

# Создание переменной connect и объекта cursor
connect = sqlite3.connect("eco.db")
cursor = connect.cursor()

# Создание базы данных
cursor.execute("CREATE TABLE IF NOT EXISTS userinfos(id TEXT INTEGER)")
connect.commit()

@bot.command()
async def старт(ctx):
    author = ctx.message.author
    cursor.execute(f"""INSERT INTO userinfos(<{author.mention}>)""")
    connect.commit()#применение изменений в БД

bot.run(TOKEN)

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

Автор решения: denisnumb

Для решения данной задачи достаточно было бы загуглить как добавлять данные в таблицу и как получать данные из таблицы.

Также нужно немного подправить типы данных:

  • id: BIGINT (большое число, так как id пользователя имеет числовой тип, но можно хранить и в текстовом)
  • experience: INT (опыт, число)
  • coins: INT (количество монет, число)

Все! Далее просто добавляем в таблицу рандомные значения для опыта и монет:

# Создание базы данных
cursor.execute("CREATE TABLE IF NOT EXISTS userinfos(id BIGINT, experience INT, coins INT)")
connect.commit()

@bot.command()
async def старт(ctx):
    # случайные значения от 1 до 200
    cursor.execute(f"""INSERT INTO userinfos(id, experience, coins) VALUES({ctx.author.id}, {randint(1, 200)}, {randint(1, 200)})""")
    connect.commit() # применение изменений в БД

Ну, и можно написать функцию для получения данных:

@bot.command()
async def get(ctx):
    cursor.execute(f"""SELECT * FROM userinfos""")
    data = cursor.fetchall()[0]
    await ctx.send(f'id: {data[0]}, exp: {data[1]}, coins: {data[2]}')

Результат:

введите сюда описание изображения

→ Ссылка