python - Python + MySQL:搜索功能返回所有条目
问题描述
我正在使用 Python 和 MySQL 编写一个库存程序。我想实现一个搜索功能,它根据用户输入返回条目(在单独的 GUI 文件中编程)。在下面的代码中,我预计搜索功能会返回带有“UGreen”品牌的条目。相反,它返回表中的所有条目。
我不确定我在这里做错了什么。我在另一个带有 sqlite 数据库的程序中使用了类似的结构,并且搜索工作正常。
任何和所有的帮助/建议将不胜感激:)
import mysql.connector
equipdb = mysql.connector.connect(
host = "localhost",
user = "root",
password = "REDACTED",
database = "tel_inventory"
)
def view():
cur = equipdb.cursor()
cur.execute("SELECT * FROM equipment")
result = cur.fetchall()
return result
def search(name="", brand="", model="", consumables="", storage="", room="", photo=""):
cur = equipdb.cursor()
cur.execute("SELECT * FROM equipment WHERE name=%s OR brand=%s OR model=%s OR consumables=%s OR storage=%s OR room=%s OR photo=%s", (name, brand, model, consumables, storage, room, photo))
result = cur.fetchall()
return result
#print(view())
print(search(brand="UGreen"))
解决方案
尝试直接使用关键字参数
def search(**kwargs):
cur = equipdb.cursor()
key = str(list(kwargs.keys())[0])
value = str(kwargs[key])
cur.execute('SELECT * FROM equipment WHERE {} = "{}"'.format(key,value))
result = cur.fetchall()
return result
推荐阅读
- javascript - 本地js文件无法在springboot中加载
- laravel - OctoberCms 博客插件分类成'activeMenuItem' 功能?
- wordpress - 在邮递员中显示 invalid_auth_key_error
- python - 如何将嵌套循环数据保存在 NPZ 文件的单个变量/数组中
- mysql - 时间戳的 MySQL 索引没有提高性能
- terraform - 需要帮助 GKE 入口与 terraform 进行 n8n 部署
- javascript - Mongoose - 我怎样才能找到并列出链接到另一个集合?
- javascript - 字符串变量中的按钮 OnClick 传递另一种方法
- c# - 在数据表c#中的下一个位置复制并插入现有行
- angular - Angular 材质主题接收当前主题变量