簡體   English   中英

Python + MySQL:搜索 function 返回所有條目

[英]Python + MySQL: Search function returning all entries

我正在使用 Python 和 MySQL 制定一個庫存計划。 我想實現一個搜索 function,它根據用戶輸入(在單獨的 GUI 文件中編程)返回條目。 在下面的代碼中,我預計搜索 function 將返回帶有“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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM