Tôi sẽ thay đổi câu lệnh kiểm tra xem kết nối có mở hay không để kiểm tra xem có phải conn không cũng như kết nối có mở hay không. Và bởi vì bạn luôn thực thi setValue Tôi khuyên bạn nên gọi kết nối bên trong __init__ chức năng.
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()
Ngoài ra, hãy nhớ rằng với Trình kết nối Python MySQL, bạn cần gọi cam kết sau khi thực hiện câu lệnh chèn hoặc cập nhật.
cur = self.conn.cursor()
cur.execute("...")
self.conn.commit()