MySQLdb: Mendayakan Sambungan Semula Pelanggan Automatik
Dalam Python, perpustakaan MySQLdb menyediakan cara yang mudah untuk berinteraksi dengan pangkalan data MySQL. Satu cabaran biasa ialah mengekalkan sambungan berterusan walaupun gangguan sementara.
Untuk menangani ini, penyelesaian wujud dalam PHP yang melibatkan pilihan MySQL, tetapi pengguna menghadapi kesukaran untuk mereplikasinya dengan MySQLdb.
Penyelesaian :
Kunci untuk membolehkan penyambungan semula automatik dalam MySQLdb terletak pada pembungkusan kaedah cursor.execute().
Kod Python berikut menunjukkan penyelesaian:
import MySQLdb class DB: conn = None def connect(self): self.conn = MySQLdb.connect() def query(self, sql): try: cursor = self.conn.cursor() cursor.execute(sql) except (AttributeError, MySQLdb.OperationalError): self.connect() cursor = self.conn.cursor() cursor.execute(sql) return cursor # Example usage db = DB() sql = "SELECT * FROM foo" cur = db.query(sql) # Sleep for a long time to simulate connection timeout time.sleep(60 * 60 * 24) cur = db.query(sql) # Connection is still valid and usable
Dalam pendekatan ini, fungsi query() menguruskan sambungan bagi pihak pengguna, memastikan sebarang sambungan yang hilang diwujudkan semula secara automatik.
Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Sambungan Semula Pelanggan Automatik dalam MySQLdb untuk Sambungan Berterusan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!