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

Python中MySQL Connector报'Truncated incorrect DOUBLE value'错误的原因与解决

错误1292 (22007): Truncated incorrect DOUBLE value:的原因与修复方案

这个错误表示MySQL执行语句时,试图将**字符串类型数据转换为数字类型(DOUBLE)**失败——因为字符串内容无法被解析为有效数字,导致数据截断或转换错误。你的数据库表结构本身没有问题,问题出在Python代码的参数绑定逻辑上。

代码问题分析

你的SQL更新语句中,占位符%s的顺序是:emp_name → emp_last_name → emp_email → emp_status → emp_id,但你构造的参数元组updated_data顺序却是:emp_id → emp_name → emp_last_name → emp_email → emp_status,两者完全不匹配。

具体来说,SQL语句的WHERE emp_id = %s需要接收整数类型的emp_id,但你最后传入的是字符串类型的emp_status,MySQL尝试将这个字符串转成数字类型(对应emp_id的INTEGER),直接触发了转换错误。另外你的函数名存在语法错误(update function中间不能有空格,需符合Python标识符规范)。

修正后的代码

def update_function(emp_id, emp_name, emp_last_name, emp_email, emp_status):
    emp_data = mysqlconn.cursor()
    sql_update_query = ("UPDATE employee set emp_name = %s, emp_last_name = %s, emp_email = %s, emp_status = %s WHERE emp_id = %s")
    # 修正参数顺序:与SQL占位符顺序一一对应
    updated_data = (emp_name, emp_last_name, emp_email, emp_status, emp_id)
    emp_data.execute(sql_update_query, updated_data)
    mysqlconn.commit()
    print("Data Updated")

注意事项

  • 参数元组的顺序必须和SQL语句中占位符%s的顺序完全一致,类型不匹配或顺序错误都会触发数据类型转换类错误。
  • Python函数名不能包含空格,需遵循标识符命名规则。

内容的提问来源于stack exchange,提问作者Kais Al Kaisy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:02:18