我有以下内容:
class DBConnection:
def __init__(self, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME):
self.host = DB_HOST
self.port = DB_PORT
self.name = DB_NAME
self.user = DB_USER
self.password = DB_PASSWORD
self.conn = None
self.cursor = None
def get_conn(self):
if self.conn is None:
self.conn = MySQLdb.connect (host = self.host, port = self.port, db = self.name, user = self.user, passwd = self.password)
return self.conn
def close_conn(self):
if self.conn:
self.conn.close()
return self.conn
这就是我尝试重新连接时的样子:
>>> from db_conn import DBConnection
>>> db = DBConnection(DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME)
>>> db.get_conn()
<_mysql.connection open to '127.0.0.1' at 7fbb1b8a2420>
>>> db.close_conn()
>>> db.conn
<_mysql.connection closed at 7fbb1b8a2420>
>>> db.get_conn()
<_mysql.connection closed at 7fbb1b8a2420>
为什么不允许我重新打开连接?我如何重新打开它,或者我是否需要创建一个新实例?
最佳答案
您正在测试 self.conn 是否为“无”,但事实并非如此 - 它仍然是一个 mysql 连接对象。它的一个属性或方法会告诉你它是否打开,所以你可以测试它,或者在 close_conn 中将 self.conn 设置为 None (如果这样更容易的话)。
关于Python 重新连接到 MySQLdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182889/