如何在sqlite3中使用Python input输入的变量执行SQL查询?
SQLite ID查询代码修正方案
现有代码核心错误点
- SQL语法错误:查询语句中
Id与参数占位符之间缺少相等判断符=,原写法WHERE Id (?)不符合SQL语法规范 - 参数格式错误:
cursor.execute的第二个参数要求传入序列类型,(autoID)仅为被括号包裹的单个整数,需添加逗号改为单元素元组(autoID,)才能被正确识别
修正后完整代码
import sqlite3 def autoAusgeben(): # 原德语输入提示已翻译为中文 autoID = int(input("请输入汽车ID:")) connection = sqlite3.connect("quartett.db") cursor = connection.cursor() # 修正SQL语法与参数格式 cursor.execute("SELECT * FROM autos WHERE Id = ?", (autoID,)) autos = cursor.fetchall() # 关闭数据库连接避免资源泄漏 connection.close() print(autos)
可选优化建议
- 新增输入校验逻辑,处理用户输入非数字的异常场景
- 新增查询结果为空的判断,对应ID不存在时给用户明确提示
- 新增数据库连接、SQL执行的异常捕获逻辑,避免程序直接崩溃
内容的提问来源于stack exchange,提问作者philipmrz
相关产品推荐
相关产品推荐

