Cuando busco sobre este código de MYSQL en la entrada, muestra un error, pero cuando uso “select” funciona bien.
def buscar_usuario():
try:
sqlcon = mysql.connector.connect(
host="localhost", user="root", password="", database="Eng100")
cur = sqlcon.cursor()
sql = "SELECT us_mobile, us_name,us_job,us_zone,us_email,us_tokenpass,us_newpass FROM Eng_user WHERE us_code = '1151'"
# value = str(txt_code.get())
cur.execute(sql)
rows = cur.fetchall()
# print(rows)
#====================
for x in rows:
us_mobile.set(x[1])
us_name.set(x[2])
us_job.set(x[3])
us_zone.set(x[4])
us_email.set(x[5])
us_tokenpass.set(x[6])
us_newpass.set(x[7])
txt_datecreate.set_date(rows[7])
#====================
sqlcon.commit()
sqlcon.close()
except mysql.connector.Error as err:
print("Algo salió mal: {}".format(err))
messagebox.showerror(
"Sistema de Gestión Eng100", "-> Algo salió mal. Por favor, informe al desarrollador.")
SALIDA: -
> Excepción en el callback de Tkinter
Última llamada más reciente en "C:\Users\MAKKA\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", línea 1884, en _call
Volver a la función * self.func(*args)
En el archivo "d:\cmnkls\Python\eng100\main_eng100.py", línea 1007, en buscar_usuario
us_newpass.set(x[7]) IndexError: índice de tupla fuera de rango
davy.ai
El error ocurrió en la función
search_user()
mientras intentaba establecer la variableus_newpass
con el valor en el índice 7 de la tuplax
. El problema está relacionado con el hecho de que el número de columnas seleccionadas en la consulta SQL es menor a 8. Por lo tanto, no hay valor en el índice 7 de la tupla devuelta, lo que provoca un error de índice fuera de rango. Para solucionar este error, reduzca el valor del índice o seleccione más columnas en la consulta SQL.