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

SQL中如何将复合字段作为单个字段插入及参数不匹配报错解决

报错根因

你遇到的报错和复合字段、日期类型被拆分为多个参数无关,核心原因是mysql.connector 模块使用的参数占位符并非?,而是%s,占位符不匹配导致参数和SQL语句无法对应,才抛出参数未全部使用的错误。

修复方法

将SQL语句内的所有?占位符替换为%s即可,修改后的代码如下:

for row in dfp.itertuples():
    cursor.execute('''
                INSERT INTO athletes(id, season, name)
                VALUES (%s,%s,%s)
                ''',
                (
                    row.id,
                    row.season,
                    row.name,
                )
            )
补充说明
  • 不管是包含空格的姓名字符串、带特殊符号的文本,还是Python datetime类型的日期值,只要作为元组的单个元素传入,mysql.connector 会自动完成转义、类型适配,将其识别为单个参数插入对应字段,不会拆分单个值为多参数。
  • 如果确实需要将多个Python变量拼接为单个字段值插入,直接在Python层面完成拼接后再作为参数传入即可,不需要在SQL语句中做拼接处理,可避免SQL注入风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:54:02