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

使用python mysql-connector操作MySQL时update更新表不生效问题咨询

问题根因

你在cur.execute()中传入的参数顺序和SQL占位符的顺序不匹配:

  • SQL语句的占位符顺序是先给target_url字段赋值,后匹配id字段:UPDATE client_url_info SET target_url=%s WHERE id=%s
  • 你传入的参数顺序是(data['client_id'], target_url),相当于把client_id赋值给了target_url,用target_url的值去匹配id字段,绝大多数场景下不会匹配到任何符合条件的行,自然不会有数据被更新。

mysql connector执行UPDATE语句时,没有匹配到行不会抛出异常,commit()也会正常执行,所以你会收到成功提示但数据无变化。

修复方案

调整参数顺序即可:

cur.execute('''UPDATE client_url_info 
                SET target_url=%s
                WHERE id=%s''', (target_url, data['client_id']))

可选排查建议

  • 可以在执行cur.execute()后打印cur.rowcount,查看实际被影响的行数,如果返回0就说明没有匹配到条件的行,方便快速定位这类参数顺序、条件不匹配的问题
  • 确保data['client_id']的类型和表中id字段的类型一致,避免隐式类型转换导致匹配失败的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:15:00