sql >> Database teknologi >  >> RDS >> Mysql

Python:MySQL-forbindelsen er åben, men kan ikke oprette markør

Jeg ville ændre sætningen, der kontrollerer om forbindelsen er åben, til både at kontrollere om conn er ingen, samt om forbindelsen er åben. Og fordi du altid udfører setValue funktion Jeg vil anbefale, at du kalder forbindelsen inde i__init__ 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()

Husk også, at du med Python MySQL Connector skal kalde commit, efter du har udført en insert- eller update-sætning.

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



  1. Sikkerhedskopiering på bordniveau

  2. Indlejrede løkker-forbindelser og præstationsspoler

  3. Hvordan afkorter man en tabel ved hjælp af forberedt sætning i MySQL?

  4. Sådan konfigureres en klynge-til-klynge-replikering til Percona XtraDB Cluster eller MariaDB Cluster