python - 变量作为具有多个值的数据库表名
问题描述
我正在尝试将 a var
(在我的情况下是 guild.id)传递给我的multiexec
. 对应的表已经存在于数据库中
for guildID in stored_guilds:
if self.get_guild(guildID):
_guildID = str(guildID)
db.multiexec("INSERT OR IGNORE INTO " + _guildID + " (GuildID, UserID, UserName) VALUES (?, ?, ?)",
((guildID, member.id, member.name) for member in self.get_guild(guildID).members if not member.bot))
我的多执行器定义
def execute(command, *values):
cur.execute(command, tuple(values))
def multiexec(command, valueset):
cur.executemany(command, valueset)
错误
_ClientEventTask exception was never retrieved
future: <ClientEventTask state=finished event=on_ready coro=<bound method Bot.on_ready of <lib.bot.Bot object at 0x0000018BABE96F10>> exception=OperationalError('near "825647896535795438": syntax error')>
Traceback (most recent call last):
...
File "C:...\lib\bot\__init__.py", line 81, in update_db
db.multiexec("INSERT OR IGNORE INTO "+ _guildID +" (GuildID, UserID, UserName) VALUES (?, ?, ?)",
File "C:\...\lib\db\db.py", line 68, in multiexec
cur.executemany(command, valueset)
sqlite3.OperationalError: near "825647896535795438": syntax error
解决方案
推荐阅读
- mysql - 消除 GROUP_CONCAT 中的重复行
- ibm-mq - 无法在 MQ 队列中找到消息?
- xamarin - XamlGtask 不支持 XamlFiles 参数
- glsl - 缓冲区大小上的长度函数的行为不能被其类型的大小整除
- java - Lex 机器人的问候语
- regex - 删除第一个逗号之前和第三个逗号之后的所有内容
- wordpress - Wordpress - 使非管理员用户无法看到具有特定自定义帖子状态的帖子
- umbraco - 将 Umbraco 网站迁移到 Azure
- angular - 服务和组件之间的循环依赖警告(Angular)
- ios - PDFKit PDFSelection边界框坐标系