Mysql
 sql >> Database >  >> RDS >> Mysql

Python MySQL ReferenceError:l'oggetto debolmente referenziato non esiste più

cursor l'oggetto utilizza connection oggetto.
Quando il tuo get_user_by_username la funzione termina l'esecuzione,
la connessione a mysql viene chiusa quindi cursor non può esistere altrettanto bene.
Se la funzione restituisce sia la connessione che il cursore funzioneranno.

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)