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

Python数据库查询:输入名称不在表中时如何添加错误提示

问题背景

现有Python类方法用于根据用户输入的书名检索数据库Books表中的对应书籍信息,原代码未处理输入书名不存在的场景,查询无结果时不会给出任何反馈,同时原代码存在SQL参数传递格式不规范的隐患。

该函数可根据输入的名称从数据库中检索书籍的相关信息

修改方案

核心逻辑是在执行查询后先判断结果集是否为空,空结果时输出明确错误提示,非空时再遍历输出内容,同时修正参数传递的问题。

修改后完整代码

def search_by_name(self):
    query = """SELECT * FROM Books WHERE book_name = ?"""
    self.Name = input("Enter The Book Name:")
    # 按数据库API规范,参数需传入序列类型,单个参数要包装为元组
    cursor.execute(query, (self.Name,))
    # 获取所有匹配的查询结果
    book_records = cursor.fetchall()
    # 无匹配结果时给出错误提示
    if not book_records:
        print(f"*错误提示*:未查询到书名为「{self.Name}」的书籍,请确认输入名称是否正确后重试")
        return
    # 有匹配结果时逐行打印书籍信息
    for row in book_records:
        print(row)

关键改动说明

  • 修正SQL参数传值问题:原代码直接传入字符串self.Name作为execute参数,不符合Python DB API要求,包装为单元素元组(self.Name,)可避免参数解析报错
  • 新增结果集空判断:通过cursor.fetchall()拉取全部查询结果,判断结果列表为空时直接输出错误提示,让用户明确知道查询无结果
  • 保留原有遍历输出逻辑,查询到对应书籍时的展示效果和原代码完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:30:51