Mysql
 sql >> Base de données >  >> RDS >> Mysql

Python :la connexion MySQL est ouverte, mais ne peut pas créer de curseur

Je changerais l'instruction qui vérifie si la connexion est ouverte pour vérifier si conn n'est pas ainsi que si la connexion est ouverte. Et parce que vous exécutez toujours le setValue Je vous recommande d'appeler la fonction connect à l'intérieur du __init__ fonction.

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

N'oubliez pas non plus qu'avec le connecteur Python MySQL, vous devez appeler commit après avoir exécuté une instruction d'insertion ou de mise à jour.

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