【发布时间】:2021-04-29 10:50:26
【问题描述】:
我正在使用 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"))
【问题讨论】:
-
您可能应该动态生成您的 where 子句(或使用为您执行此操作的 ORM)以仅包含您实际搜索的那些字段!