如何在 fetchall() 的一行中只取 1 个值

问题描述 投票:0回答:1

有没有办法在

fetchall()
中取1个值而不显示其他值?

import mysql.connector
import hashlib

#connect to database
cnx = mysql.connector.connect(
    host = '127.0.0.1',
    user = 'root',
    password = 'Francislaon@1406',
    database = 'useracc'
)
cr = cnx.cursor()
result = ('')

#verify connection
if cnx.is_connected():
    print('\n            /---------------------/')
    print('           /                     /')
    print('          /      Connected      /')
    print('         /---------------------/')
else:
     print('\n            /---------------------/')
     print('           /                     /')
     print('          /        FAILED       /')
     print('         /---------------------/')
    
#welcomes the user
def welcome():
    print('\n\n            /------------------------/')
    print('           /                        /')
    print('          /         WELCOME        /')
    print('         /------------------------/')
    print('\n   /----------------/    /--------------/')
    print('  /     SIGN IN    /    /    SIGN UP   /')
    print(' /----------------/    /--------------/')
    print('\n    /----------------------------/')
    userin = input ('    USER RESPONSE :      ').upper()
    print('  /----------------------------/')
    if userin == 'SIGN IN':
        return signin()

#login if the user have account
def signin():
    global result
    print('\n\n\n\n            /------------------------/')
    print('           /                        /')
    print('          /         LOGIN          /')
    print('         /------------------------/')
    usernamein = input('\n\nUSERNAME : ')
    passwordin = hashlib.sha256(input('PASSWORD : ').encode()).hexdigest()
    print('\n     /--------CHECKING--------/')
    querydata = {
        'username' : usernamein,
        'password' : passwordin
    }
    cr.execute("SELECT * FROM userdata WHERE username = %(username)s AND password = %(password)s", querydata)
    result = cr.fetchall()
    if result:
        print('\n/--------LOGIN SUCCESS--------/')
    else:
        print('\n/--------LOGIN FAILED--------/')
        return welcome()

        
    
    
    
welcome()
print(result)

我只想在图像中看到的输出中取

dummy
值:

实际上我什么都没做,因为我不太了解python

python mysql-python mysql-connector fetchall
1个回答
0
投票

你可以使用 -

result = cr.fetchall()
,然后得到第一行——
first_row = result[0]
(如果查询只返回单行)

你可以遍历

cr.fetchall()
-

for row in result :
    # Based on the requirement you can get those values by accessing the index
    print("col1: ", row[0])   # 1
    print("col2: ", row[1])   # dummy
    print("col3: ", row[2])   # 4e52d35fcd82227deb6442dc8a50b72cb15cd10e993886a93d9718bc1afbdgea

您可以在这里看到文档

© www.soinside.com 2019 - 2024. All rights reserved.