sql >> Base de Datos >  >> RDS >> Mysql

Python MySQL ReferenceError:el objeto referenciado débilmente ya no existe

cursor el objeto usa connection objeto.
Cuando su get_user_by_username la función termina de ejecutarse,
la conexión a mysql se cierra, por lo tanto, cursor tampoco puede existir.
Hacer que la función devuelva tanto la conexión como el cursor funcionará.

import mysql.connector

def get_user_by_username(username):
    mydb = mysql.connector.connect(
        host="localhost",
        user=username,
        passwd="k3gc8pHPvEtGqND",
        database="test"
        )

    mycursor = mydb.cursor()

    mycursor.execute("SELECT * FROM users")
    return mydb, mycursor

mydb, mycursor = get_user_by_username("testuser")
for x in mycursor:
    print(x)