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

MySQL报错1064(42000):单参数SQL语法错误多参数正常原因求解

问题原因排查

你的报错是因为单参数场景下,传入execute方法的参数没有被正确识别为元组导致的:

  • Python语法中,仅用括号包裹单个元素、不在末尾加逗号时,括号会被判定为普通的运算优先级符号,最终你传入cursor.execute的第二个参数是字符串本身,而非mysql-connector要求的参数元组,框架无法正常替换SQL中的%s占位符,因此抛出SQL语法错误。
  • 你登录功能的代码传入了两个参数,括号内自带逗号,会被Python自动识别为元组,因此参数可以被正确解析,运行正常。
修复方案

将忘记密码功能的cursor.execute行修改为以下内容,给单个参数末尾增加逗号,显式声明为元组即可:

cursor.execute("""SELECT * FROM Employee WHERE employee_address=%s """,(self.Mail_address.get(),))
补充说明

Python中单个元素元组的定义必须加末尾逗号,示例如下:

# 错误写法:类型为字符串,不是元组
param = ("test@example.com")
# 正确写法:类型为元组
param = ("test@example.com",)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:57:02