Discord工单系统开发:修复sqlite3.ProgrammingError参数类型不支持问题
Discord工单系统SQLite查询报错修复
问题根源
你的代码存在两个核心问题,导致了sqlite3.ProgrammingError: parameters are of unsupported type错误:
- 错误的Guild对象引用:
guild = discord.Guild是直接赋值类本身,而非实际的服务器实例。此时guild.id是类属性,不是真实的服务器ID数值,SQLite无法识别该类型。 - 参数元组格式错误:SQL执行时,单元素参数需要写成
(值,)的元组格式,你写的(guild.id)会被解析为单个值而非元组,导致参数传递失败。
修复后的代码示例
首先要确保获取到真实的Guild实例,比如通过Discord.py的事件或命令上下文获取,以下是修正后的代码:
import sqlite3 import discord from discord.ext import commands bot = commands.Bot(command_prefix='!', intents=discord.Intents.all()) @bot.event async def on_ready(): conn1 = sqlite3.connect('user.sqlite') cur1 = conn1.cursor() conn2 = sqlite3.connect('setup.sqlite') cur2 = conn2.cursor() # 创建ticket表(如果不存在) cur1.execute("""CREATE TABLE IF NOT EXISTS ticket (id INTEGER PRIMARY KEY AUTOINCREMENT, discord_name TEXT, discord_id INTEGER, ticket_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP)""") conn1.commit() # 获取真实的Guild实例(示例:通过ID获取,或者从命令上下文ctx.guild获取) # 替换成你的目标服务器ID target_guild_id = 123456789012345678 guild = bot.get_guild(target_guild_id) if guild: # 修复参数元组格式,添加逗号确保是元组类型 cur2.execute("SELECT guild_id FROM setup WHERE guild_id = ?", (guild.id,)) # 获取查询结果 GUILD_ID = cur2.fetchone() if GUILD_ID: print(f"获取到的服务器ID: {GUILD_ID[0]}") else: print("该服务器ID未在setup表中找到") else: print("无法找到指定服务器") # 关闭数据库连接 conn1.close() conn2.close() bot.run('你的Bot令牌')
原setup表结构
CREATE TABLE "setup" ( "guild_id" NUMERIC, "ticket_channel_id" NUMERIC, "category_id_1" NUMERIC, "category_id_2" NUMERIC, "team_role_id_1" NUMERIC, "team_role_id_2" NUMERIC, "log_channel_id" NUMERIC, "timezone" TEXT );
原报错信息
parameters are of unsupported type
File "C:\Users\My name\Documents\Bot\ticket_system.py", line 23, in
GUILD_ID = cur2.execute("SELECT guild_id FROM setup WHERE guild_id = ?", (guild.id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\My name\Documents\Bot\Bot.py", line 20, in
from ticket_system import Ticket_System
sqlite3.ProgrammingError: parameters are of unsupported type
内容的提问来源于stack exchange,提问作者Legend Taco
相关产品推荐
相关产品推荐

