【发布时间】:2022-11-17 06:42:54
【问题描述】:
所以我正在使用 sqlite 和 discord.py 制作一个不和谐的机器人
那是给出错误的命令:
@bot.command()
@commands.has_permissions(administrator=True)
async def set_ip(ctx, arg=None):
if arg == None:
await ctx.send("You must type the IP adress next to the command!")
elif arg.endswith('.aternos.me') == False:
await ctx.send('IP must end with .aternos.me')
elif ctx.guild.id == None:
await ctx.send("This is a guild-only command!")
else:
ipas = None
id = ctx.guild.id
conn.execute(f'''DROP TABLE IF EXISTS guild_{id}''')
conn.execute(f'''CREATE TABLE IF NOT EXISTS guild_{id} (
ip TEXT NOT NULL
)''')
conn.execute(f'''INSERT INTO guild_{id} ("ip") VALUES ({arg})''')
cursor = conn.execute(f'''SELECT ip FROM guild_{id}''')
for row in cursor:
ipas = row[0]
if ipas == None:
await ctx.send("Failed to set IP!")
conn.execute(f'''DROP TABLE IF EXISTS guild_{id}''')
else:
await ctx.send(f"Your guild ip is now -> {ipas}")
print("An ip has been set!")
我试图创建一个表,如果不存在名称为 guild_(和 discord 服务器 ID) 并检查它是否已设置
错误是: OperationalError:没有这样的列:(arg)
sqlite 给出了这个错误,我无法弄清楚,请帮助我。
【问题讨论】:
-
与您的实际问题分开,但为什么要为每个行会创建一个单独的表?一个更好的设计似乎有一个单一的
guild表。通常,我不希望应用程序经常创建和删除表。
标签: python sql python-3.x sqlite discord.py