python和数据库交互报错怎么改

问题遇到的现象和发生背景

python和数据库交互报错怎么改

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

这是用pymysql连接数据库的一个测试文档,可以试试


import pymysql
class Mysql:
    __instance = None
    __is_first = True

    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = object.__new__(cls)
        return cls.__instance

    def __init__(self, user, password, database, host="localhost", port=3306):
        if self.__is_first:
            self.__con = pymysql.connect(user=user, password=password, database=database, host=host, port=port)
            self.__cur = self.__con.cursor()
            Mysql.__is_first = False

    def __del__(self):
        self.__cur.close()
        self.__con.close()

    def query_one(self, sql, *args):
        self.__cur.execute(sql, args)
        return self.__cur.fetchone()

    def query_all(self, sql, *args):
        self.__cur.execute(sql, args)
        return self.__cur.fetchall()

    def execute_tb(self, sql, *args):
        try:
            self.__cur.execute(sql, args)
            self.__con.commit()
            return True
        except:
            self.__con.rollback()
            return False

if __name__ == '__main__':
    res = Mysql("user", "password", "database")
    re = res.query_all("select * from datatable")
    print(re)