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

Python sqlite3按用户输入分类查询影片ID时报占位符语法错误如何解决

问题原因

报错的核心原因是SQLite的参数化查询占位符语法使用错误。SQLite不支持%s作为参数占位符,该语法仅适用于MySQL等其他数据库,SQLite规定使用?作为参数占位符。

修复方法

  • 把c.execute方法内SQL语句中的%s替换为?即可解决语法报错
  • 可选优化:可直接在SQL语句中加入DISTINCT关键词实现去重,无需后续用Python处理,查询效率更高

修正后的完整代码

import sqlite3

# 连接数据库
conn = sqlite3.connect('sakila.db')
c = conn.cursor()

# 校验数据库连接状态
if conn:
    print("连接成功")
else:
    print("连接失败")

kategorija = input("输入影片分类: ")
# 替换占位符为?,加入DISTINCT直接完成去重
c.execute("SELECT DISTINCT FID FROM film_list WHERE category=?", (kategorija,))
film = c.fetchall()
print(film)

# 操作完成后关闭连接避免资源占用
conn.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:36:02