比较 MySQL table 记录与用户在 PYTHON 中输入的值

Comparing MySQL table record with user entered value in PYTHON

在这里,我主要是尝试从 SQL Table 中获取一个字符串值,并且我想将该值与我输入的字符串进行比较。我尝试了这种简单的方法,但不幸的是,它不起作用。我需要帮助。

def cantkt():
    #tkt()
    #canstate=("DELETE FROM Chart WHERE PNR=%s"%canpnr)
    canpnr=input("Enter PNR No. to Cancel Ticket: ")
    mycsr.execute("SELECT PNR FROM Chart WHERE PNR=%s"%canpnr)
    res=mycsr.fetchone()
    print(res)
    if res==canpnr:
         print("PNR MATCHED")
    else:
         print("PNR No. DOES NOT MATCH")

正如您在打印中看到的那样,提取的结果是一个元组,而不是字符串。

你可以简单地这样做:

res = mycsr.fetchone()
if res: res = res[0]

解释:

res 是 ('1019654419', ) 所以你必须寻找你想要得到的值,在本例中是第一个。

在“if res: res = res[0]”中,我们检查 res 是否有值,因为如果票不存在,获取的值将是一个空元组,因此尝试获取第一个结果将引发一个索引错误。