在数据库中搜索的用户输入 mysql python 3.4
user input searched in database mysql python 3.4
我正在尝试获取用户的输入并在数据库 table 中进行搜索。但是我的 if 语句不能正常工作,它对存在的值和不存在的值显示相同的结果。学生 table 包含 first_name、last_name、年龄、收入、学位
我将年龄作为用户输入。 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()
我正试图摆脱你的问题和评论。也许你想要像下面这样的东西,你在失败的查找中依赖一个错误的值:
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
,你只是在查询数据库,所以你的代码的后半部分对我来说没有意义。
您当前的查询将 return 所有 age
等于您当前值的情况。如果目的只是为了查看它是否 存在 那么您可以限制查询并使用 fetchone()
代替。
cursor.execute("SELECT age FROM STUDENTS WHERE age=%s LIMIT 1", (age,))
我正在尝试获取用户的输入并在数据库 table 中进行搜索。但是我的 if 语句不能正常工作,它对存在的值和不存在的值显示相同的结果。学生 table 包含 first_name、last_name、年龄、收入、学位
我将年龄作为用户输入。 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()
我正试图摆脱你的问题和评论。也许你想要像下面这样的东西,你在失败的查找中依赖一个错误的值:
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
,你只是在查询数据库,所以你的代码的后半部分对我来说没有意义。
您当前的查询将 return 所有 age
等于您当前值的情况。如果目的只是为了查看它是否 存在 那么您可以限制查询并使用 fetchone()
代替。
cursor.execute("SELECT age FROM STUDENTS WHERE age=%s LIMIT 1", (age,))