Cambiaría la declaración que verifica si la conexión está abierta para verificar si la conexión no es ninguna y si la conexión está abierta. Y porque siempre ejecutas el setValue
función Te recomendaría que llames a la conexión dentro del __init__
función.
class Sample:
conn = None
def __init__(self):
self.connect()
self.value = self.setValue()
self.close()
def connect(self):
self.conn = MySQLdb.connect(...)
def close(self):
if self.conn:
self.conn.close()
def setValue(self):
if not self.conn and not self.conn.open:
self.connect()
cursor = self.conn.cursor()
Además, recuerde que con Python MySQL Connector debe llamar a commit después de ejecutar una declaración de inserción o actualización.
cur = self.conn.cursor()
cur.execute("...")
self.conn.commit()