在数据库mysql python 3.4中搜索用户输入

55ooxyrt  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(305)

我试图从用户那里获取输入并在数据库表中搜索它。但是我的if语句工作不正常,它对存在的值和不存在的值显示相同的结果。包含名、姓、年龄、收入、学位的学生表
我把年龄作为用户输入。if语句不能正常工作。下面是我的代码:我尝试了许多不同的场景

import pymysql
db= pymysql.connect("localhost","testuser","admin","TESTDB")
cursor =db.cursor()
age= input("Please select a age:\n")
cursor.execute(f"SELECT AGE FROM STUDENTS WHERE age={age}")
results=cursor.fetchall()
print(results)
if (results ==age):
        print("age exit!")
else:
        print("not exists")

try:
        db.commit()
except:
        db.rollback()

        db.close()
dgenwo3n

dgenwo3n1#

我试着回避你的问题和评论。可能您希望在失败的查找中使用假值:

import pymysql
db= pymysql.connect("localhost","testuser","admin","TESTDB")
cursor =db.cursor()
age= input("Please select an age:\n")

cursor.execute("SELECT age FROM STUDENTS WHERE age=%s", (age,))
data = cursor.fetchall()
if data:
    print("Age exists")
else:
    print("Age does not exist")

这种查找不需要任何类型的 commit 或者 rollback ,您只是在查询数据库,所以代码的后一部分对我来说没有意义。
您当前的查询将返回 age 等于当前值。如果目的只是查看它是否存在,那么可以限制查询和使用 fetchone() 相反。

cursor.execute("SELECT age FROM STUDENTS WHERE age=%s LIMIT 1", (age,))

相关问题