Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Python MySQL ReferenceError:Schwach referenziertes Objekt existiert nicht mehr

cursor Objekt verwendet connection Objekt.
Wenn Ihr get_user_by_username Funktion beendet die Ausführung,
die Verbindung zu mysql wird geschlossen, daher cursor kann auch nicht existieren.
Wenn die Funktion sowohl die Verbindung als auch den Cursor zurückgibt, funktioniert das.

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)