You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python操作MySQL校验ID存在时出现Not all parameters were used错误

错误原因
  • Python数据库操作规范要求cursor.execute()的第二个参数必须传入可迭代序列(元组、列表等),用于和SQL语句中的占位符一一匹配。你直接传入字符串Id时,程序会将字符串拆分为单个字符的序列作为参数列表,与SQL中仅有的1个占位符数量不匹配,因此触发报错。
  • 代码存在游标变量不统一问题:执行SQL时使用dbc游标,读取结果行数时却调用cursor对象,会导致后续判断逻辑失效。
修复方案

将传入的ID参数包装为元组或列表即可,单元素元组需要在末尾额外加逗号避免被识别为普通括号表达式,同时统一游标变量:

Id = "TEST"
sql = """SELECT * FROM musics WHERE Id = %s"""
# 两种参数写法都可生效
# 写法1:用元组传参
cursor.execute(sql, (Id,))
# 写法2:用列表传参
# cursor.execute(sql, [Id])

row = cursor.rowcount
if row == 0:
    # ID不存在的业务逻辑
    pass

内容的提问来源于stack exchange,提问作者asdasefsgd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:06:00