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

使用SQLite INSERT语句遇参数类型不支持错误,求排查脚本问题

问题分析与解决
  • 错误原因:你调用c.execute()时,错误地将数据库连接对象conn作为第二个参数传入。cursor.execute()的第二个参数是用于参数化查询的参数集合(如元组、列表),而非数据库连接。这导致SQLite无法识别该参数类型,抛出ProgrammingError。

  • 修正代码:
    将插入语句的执行代码修改为:

    c.execute(
        'INSERT INTO spiders ('
            'record_id, month, day, year, plot_id, species_id, sex, '
            'hindfoot_length, weight'
            ') VALUES (0, 7, 31, 2023, 2, "DM", "F", 99.0, 60.0)'
    )
    # 提交事务,确保数据写入数据库
    conn.commit()
    

    更规范的写法是使用参数化查询(避免SQL注入风险,即使是测试场景也建议遵循):

    insert_query = '''
        INSERT INTO spiders (
            record_id, month, day, year, plot_id, species_id, sex,
            hindfoot_length, weight
        ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
    '''
    values = (0, 7, 31, 2023, 2, "DM", "F", 99.0, 60.0)
    c.execute(insert_query, values)
    conn.commit()
    
  • 额外注意事项:执行插入操作后必须调用conn.commit()提交事务,否则插入的数据不会持久化到数据库中。脚本结束后建议关闭游标和连接:

    c.close()
    conn.close()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:12:54