Python 和 MySQL - 执行查询时出现弱引用错误
Python and MySQL - Weak Reference Error when Executing Query
我是 Python 和 MySQL 的新手,在使用连接 class 执行查询时遇到了一些问题。
这是我目前所拥有的:
class DbConnection:
def __init__(self):
db = mysql.connector.connect(
host=cfg.mysql["host"],
user=cfg.mysql["user"],
passwd=cfg.mysql["passwd"],
database=cfg.mysql["database"]
)
self.cursor = db.cursor()
def query(self, sql):
self.cursor.execute(sql)
return self.cursor.fetchall()
test = DbConnection()
test.query('SELECT * FROM DaycareDogs')
当我尝试 运行 这个(或任何查询)时,我收到“ReferenceError:弱引用对象不再存在”。
我对编码还很陌生,这是我的第一个真正的项目,所以我正在学习。
有什么我想念的吗?我已经看到了其他一些类似的问题,并按照建议做了,但仍然没有成功。
有什么建议吗?
谢谢!
尝试使数据库连接成为 class 的 属性,方法是在其前面添加 self
class DbConnection:
def __init__(self):
self.db = mysql.connector.connect(
host=cfg.mysql["host"],
user=cfg.mysql["user"],
passwd=cfg.mysql["passwd"],
database=cfg.mysql["database"]
)
self.cursor = self.db.cursor()
def query(self, sql):
self.cursor.execute(sql)
return self.cursor.fetchall()
test = DbConnection()
test.query('SELECT * FROM DaycareDogs')
由于变量db在局部作用域,当'init'构造函数结束时,变量会被销毁,因此连接
我是 Python 和 MySQL 的新手,在使用连接 class 执行查询时遇到了一些问题。
这是我目前所拥有的:
class DbConnection:
def __init__(self):
db = mysql.connector.connect(
host=cfg.mysql["host"],
user=cfg.mysql["user"],
passwd=cfg.mysql["passwd"],
database=cfg.mysql["database"]
)
self.cursor = db.cursor()
def query(self, sql):
self.cursor.execute(sql)
return self.cursor.fetchall()
test = DbConnection()
test.query('SELECT * FROM DaycareDogs')
当我尝试 运行 这个(或任何查询)时,我收到“ReferenceError:弱引用对象不再存在”。
我对编码还很陌生,这是我的第一个真正的项目,所以我正在学习。
有什么我想念的吗?我已经看到了其他一些类似的问题,并按照建议做了,但仍然没有成功。
有什么建议吗?
谢谢!
尝试使数据库连接成为 class 的 属性,方法是在其前面添加 self
class DbConnection:
def __init__(self):
self.db = mysql.connector.connect(
host=cfg.mysql["host"],
user=cfg.mysql["user"],
passwd=cfg.mysql["passwd"],
database=cfg.mysql["database"]
)
self.cursor = self.db.cursor()
def query(self, sql):
self.cursor.execute(sql)
return self.cursor.fetchall()
test = DbConnection()
test.query('SELECT * FROM DaycareDogs')
由于变量db在局部作用域,当'init'构造函数结束时,变量会被销毁,因此连接