Я создавал бота Discord, и когда я использовал команду (! Add-item @Role 15), он вылетел с сообщением: «OperationalError: table shop имеет 2 столбца, но было предоставлено 3 значения»! Вот код:
import discord
from discord.ext import commands
import sqlite3
client = commands.Bot(command_prefix='!')
client.remove_command('help')
connection = sqlite3.connect('server.db')
cursor = connection.cursor()
@client.event
async def on_ready():
cursor.execute("""CREATE TABLE IF NOT EXISTS shop (
role_id INT,
id INT,
cost BIGINT
)""")
@client.command(aliases = ['add-item'])
async def __add_item(ctx, role: discord.Role = None, cost: int = None):
if role is None:
await ctx.send(f'**{ctx.author}**, please, choose a role!')
else:
if cost is None:
await ctx.send(f"**{ctx.author}**, please, indicate the cost of the role!")
elif cost < 0:
await ctx.send(f"**{ctx.author}**, the cost of the role must be higher than 0!")
else:
cursor.execute("INSERT INTO shop VALUES ({}, {}, {})".format(role.id, ctx.guild.id, cost))
connection.commit()
await ctx.message.add_reaction('✅')
client.run('MY TOKEN')
Пожалуйста, помогите!