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

插入数据至SQL表时触发ProgrammingError:SQL语句未使用全部参数

解决MySQL插入时的"Not all parameters were used"错误

你的代码存在两个关键问题引发了该错误:

  • SQL语法错误:INSERT INTO后的表名不需要加括号,原语句里的(Product_details)属于错误写法,会干扰SQL解析,间接导致参数匹配异常。
  • 循环逻辑错误:val是单条数据的6个字段值组成的列表,你用for values in val遍历的是每个单独的字段值,每次仅传给SQL一个参数,但SQL语句需要6个参数,这就造成了参数数量不匹配。

单条数据插入修正代码

# 修正表名的括号问题
sql = """INSERT INTO Product_details VALUES (%s, %s, %s, %s, %s, %s)"""
val = [name, Spec, Ratings, Delivery, Discount, Price]

# 直接执行单条插入,无需循环
engine.execute(sql, val)

多条数据批量插入代码

如果需要一次性插入多条产品数据,可将val改为嵌套列表,使用executemany方法:

sql = """INSERT INTO Product_details VALUES (%s, %s, %s, %s, %s, %s)"""
# 每个子列表对应一条产品的完整数据
val = [
    [name1, Spec1, Ratings1, Delivery1, Discount1, Price1],
    [name2, Spec2, Ratings2, Delivery2, Discount2, Price2]
]

# 批量插入多条数据
engine.executemany(sql, val)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:40:41