Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Python MySQL ReferenceError:objeto fracamente referenciado não existe mais


cursor objeto usa connection object.
Quando seu get_user_by_username a função termina a execução,
a conexão com o mysql é fechada, portanto cursor não pode existir também.
Ter a função retornando tanto a conexão quanto o 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)