#->예외 오류: 약한 참조 개체가 더 이상 존재하지 않습니다.
P粉070918777
P粉070918777 2024-03-26 11:19:01
0
2
436

다음은 오류를 생성하는 코드입니다.

으아악

Python 코드를 실행 중인데 다음과 같은 오류 메시지가 나타납니다.

import mysql.connector
import datetime

class Command:
    def __init__(self):
        mydb = mysql.connector.connect(host='localhost', passwd='1234', user='root', database='customers')

        self.mycursor = mydb.cursor()

    def execute(self, contest_id, url, Questions):
        date = datetime.date.today()
        Time = datetime.datetime.now().strftime("%I:%M")

        self.mycursor.execute(f"INSERT INTO contest(contest_name, url_tag, Questions, At_date, At_time) VALUES('{contest_id}', '{url}', {Questions}, '{date}', '{Time}')")

P粉070918777
P粉070918777

모든 응답(2)
P粉329425839

내 추측으로는 귀하의 수업에 속하지 않기 때문에 연결이 끊어진 것 같습니다. 이 방법을 시도해 볼 수 있나요?

으아아아
大鹏

코드에서 mydb 데이터베이스 연결 개체는 Command 클래스의 __init__ 메서드에서 생성됩니다. 그러나 이 연결 개체는 클래스의 속성으로 저장되지 않으므로 __init__ 메서드가 완료되면 mydb 개체는 더 이상 어떤 변수에서도 참조되지 않으므로 Python의 가비지 수집기에 의해 재활용될 수 있습니다.

이 문제를 해결하려면 __init__ 메소드 실행 후 재활용되지 않도록 데이터베이스 연결 객체 mydb를 클래스의 속성으로 저장해야 합니다. self.mydb와 같은 self에 대한 속성을 설정하여 이를 수행할 수 있습니다.

rreee

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿