Я написал демон python, который непрерывно опрашивает базу данных mysql. Он отлично работает, когда я постоянно подключаюсь и повторно подключаюсь к базе данных между запросами следующим образом:
def connect(self):
self.connection = MySQLdb.connect(...)
self.cursor = self.connection.cursor()
return self.cursor
def disconnect(self): ...
self.cursor.close()
self.connection.close()
def getData(); ....
sqlcmd = """SELECT ...."""
self.cursor.execute (sqlcmd % (params))
result = self.cursor.fetchall()
return result
if __name__ == "__main__":
db = prepaid_db.Database()
while 1:
dbConnection = db.connect()
data = db.getData()
... do stuff
db.disconnect
Но когда я пытаюсь сохранить соединение с базой данных открытым (как показано ниже), я получаю пустой запрос, хотя во время его работы я могу запросить db вручную, задайте ему тот же запрос и получите ожидаемый результат.
if __name__ == "__main__":
db = prepaid_db.Database()
dbConnection = db.connect()
while 1:
data = db.getData()
... do stuff
db.disconnect
Я перепробовал все, чтобы понять, почему он делает это:
Мне бы хотелось узнать, чего я не понимаю.