Как заносить ники людей из дискорда в базу данных 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]}')
Результат:
