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

Python操作MySQL执行UPDATE语句报1064语法错误该如何解决?

问题修复方案

核心错误原因

你触发1064语法报错的根本原因是传入cursor.execute()的参数格式不符合要求:
Python 中单个元素的元组必须在末尾添加英文逗号,否则括号仅会被识别为优先级运算符,不会生成元组类型。你当前代码中的val = (new_name.get())实际为字符串类型,而execute()方法要求第二个参数必须是序列(元组/列表),导致SQL语句中的%s占位符无法被正确替换,最终触发语法错误。

修复代码

将原有代码中参数赋值和执行的部分:

val = (new_name.get())
cur.execute(update_command, val)

修改为:

# 单个元素末尾加逗号,明确为元组类型
val = (new_name.get(),)
cur.execute(update_command, val)

也可以使用列表格式避免踩元组的语法坑:

val = [new_name.get()]
cur.execute(update_command, val)

可选优化建议

你当前的输入校验逻辑old_uname.get()==" " or new_name.get()==" "仅能判断输入为单个空格的场景,无法覆盖内容为空、多空格的情况,可以修改为以下逻辑提升校验严谨性:

if old_uname.get().strip() == "" or new_name.get().strip() == "":

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:24:06