大佬教程收集整理的这篇文章主要介绍了如何从 python 中选择 MYSQL 中的一行并对其进行处理?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在做一个项目,在这个项目中,我必须在 sql 上工作。在代码中,我必须处理一行以匹配一个人的值。
def userID():
os.system('cls')
ii = input("enter your User ID: ")
curs.execute("SELECT ID FROM users") #shows ID row of users table
rows = curs.fetchall() #fetch all data of ID row
if (ii,) in rows: #if value of ii is in the row,condition evaluates
password()
else:
exit()
def password():
ps = getpass.getpass("enter your pin: ")
curs.execute("SELECT pin FROM users") #shows PIN row of users table
row = curs.fetchall() #fetch all data of pin row
if (ps,) in row: #if Data in row matches with data in ps,condition evaluates
main()
else:
exit()
这是代码,您可以看到,在第一个函数中,我成功获取了用户 ID,但是当涉及到密码时,我想匹配包含用户输入的 UserID 的行中的密码。但相反,它包含的所有密码都匹配并且正在发生错误。
最近我发现了一个关键字 fetchone()
但我不确定如何使用它或者它是否有效。
请帮助我,我如何使用 python 在 sql 中只处理一行。
在数据库返回查询结果之前,需要使用WHERE子句过滤查询结果。例如
SELECT ID,PIN FROM users WHERE ID = 42
将仅返回 id 为 42 的用户的 id 和 pin,如果没有具有此 id 的行,则不返回任何内容。
使用 WHERE
子句,我们可以像这样更改您的代码:
def userid():
os.system('cls')
ii = input("enter your User ID: ")
# I'm guessing ID is an Integer value in the database?
id_ = int(ii)
# fetch matching id
curs.execute("SELECT ID FROM users WHERE ID = %s",(id_,))
row = curs.fetchone() #fetch all data of ID row
if row: # if the query returned a row,the id exists
password(id_)
else:
exit()
def password(id_):
ps = getpass.getpass("enter your pin: ")
# Fetch the PIN only for our user's ID
curs.execute("SELECT pin FROM users WHERE ID = %s",))
row = curs.fetchone() #fetch all data of pin row
# if Data in row matches with data in ps,condition evaluates
if (ps,) in row:
main()
else:
exit()
请注意,在检查此类凭据时,通常会在单个查询中获取 ID 和密码并同时检查它们:
id_ = int(input('what is your id number?'))
password = getpass.getpass('what is your PIN?')
cur.execute("""SELECT id,password FROM users WHERE id = %s AND password = %s""",password))
这样效率更高,因为只向数据库发送一个查询,并且可能更安全,因为如果失败,用户不知道 ID 或密码是否错误。
以上是大佬教程为你收集整理的如何从 python 中选择 MYSQL 中的一行并对其进行处理?全部内容,希望文章能够帮你解决如何从 python 中选择 MYSQL 中的一行并对其进行处理?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。