Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Python:MySQL-Verbindung ist geöffnet, aber Cursor kann nicht erstellt werden

Ich würde die Anweisung ändern, die prüft, ob die Verbindung geöffnet ist, um sowohl zu prüfen, ob conn none ist, als auch, ob die Verbindung geöffnet ist. Und weil Sie immer den setValue ausführen Funktion Ich würde empfehlen, dass Sie die Verbindung innerhalb des __init__ aufrufen Funktion.

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()

Denken Sie auch daran, dass Sie beim Python-MySQL-Connector commit aufrufen müssen, nachdem Sie eine Insert- oder Update-Anweisung ausgeführt haben.

cur =  self.conn.cursor()
cur.execute("...")
self.conn.commit()