代码未执行,程序跳出循环并等待其他命令

时间:2019-04-24 14:43:54

标签: python-3.x

当数据库中未找到任何内容时,我试图返回“未找到搜索”,但该程序只是跳出循环

我尝试检查0'',但是意识到数据库返回了NoneType。我现在正在检查None,但是代码仍然无法执行。

def search():
    def searchmenu():
        print('')
        ans=str(input('Make another [s]earch or return to the [m]ain menu: '))
        ans=ans.lower()
        if ans=='s':
            Inventory.search()
        elif ans=='m':
            menu=MainMenu()
            menu.menuops()   
        else:
            print('invalid menu option')
            searchmenu()

        mydb = mysql.connector.connect(host="localhost", user="root", password="", database="pharmd")
        cursor = mydb.cursor()
        query=str(input("Search: "))
        if query != "":
            cursor.execute('SELECT * FROM drugs WHERE name LIKE "%'+query+'%"')
            results=cursor.fetchall()
            if results != None:
                for data in results:
                    print('found!')
                    print(data)
                    searchmenu()
            else:
                print('No results found')
        else:
            print('Please enter a valid search!')
            print('')
            Inventory.search()

1 个答案:

答案 0 :(得分:1)

问题在于cursor.fetchall()不会返回None,而是返回一个空的元组()

您可以根据the answer中的this question检查cursor.rowcount中是否有空结果。