Python + MySQL:返回所有条目的搜索函数

Python + MySQL: Search function returning all entries

我正在使用 Python 和 MySQL 整理一个清单程序。我想实现一个基于用户输入(在单独的 GUI 文件中编程)的 returns 条目的搜索功能。在下面的代码中,我预计搜索功能会 return 带有品牌“UGreen”的条目。相反,它 return 是 table.

中的所有条目

我不确定我做错了什么。我在另一个带有 sqlite 数据库的程序中使用了类似的结构,并且搜索工作正常。

所有help/suggestions将不胜感激:)

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