поиск пользователя в базе данных mysql python 3.4

Я пытаюсь ввести данные пользователя и выполнить поиск в таблице базы данных. но оператор if не работает должным образом. Он показывает одинаковые результаты для существующих значений и значений, которые не существуют. Таблица студентов, содержащая first_name, last_name, импортирует pymysql db = pymysql . connect ( «localhost» , «testuser» , «admin» , «TESTDB» ) cursor = db . курсор () возраст = вход ( «Пожалуйста , выберите возраст: п» ) курсор . выполнить ( f«ВЫБЕРИТЕ ВОЗРАСТ ИЗ СТУДЕНТОВ WHERE age = {age}» ) results = cursor . fetchall () print ( results ) if ( results == age ): print ( "age exit!" ) else : print ( "not exists" ) try : db . commit () кроме : db . rollback () db . close () , доход, степень, и я беру возраст в качестве пользователя. если инструкция не работает правильно. вот мой код: я пробовал много разных сценариев

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

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

python,mysql,python-3.4,fuzzy-logic,

0

Ответов: 1


0 принят

Я пытаюсь ответить на ваш вопрос и ваши комментарии. Возможно, вам нужно что-то вроде следующего, где вы полагаетесь на ложную ценность при неудачном поиске:

commit

Такой поиск не требует какого-либо rollbackили age, вы просто запрашиваете базу данных, поэтому последняя часть вашего кода не имеет для меня смысла.

Ваш текущий запрос вернет все случаи, когда ageваше текущее значение равно. Если целью является просто посмотреть, существует ли она, тогда вы можете ограничить запрос и использовать его fetchone().

cursor.execute("SELECT age FROM STUDENTS WHERE age=%s LIMIT 1", (age,))
Python, MySQL, Python-3,4, нечеткая логика,
Похожие вопросы