import pymysql
connection = None # Başlangıçta bağlantı yok
def get_veri():
global connection # Global değişken kullanma
try:
# Eğer bağlantı yoksa ya da kapalıysa, yeniden bağlan
if connection is None or not connection.open:
connection = pymysql.connect(
host="192.242.117.123",
user="ss",
password="hD5e27xy",
database="ss"
)
else:
# Bağlantı hala açıksa, ping at
ping_result = connection.ping()
if ping_result is None:
print("Bağlantı hala açık")
else:
print("Bağlantı kapalı")
# Cursor oluştur
cursor = connection.cursor()
try:
cursor.execute("SELECT * FROM keklik")
results = cursor.fetchall()
if not results:
print("Veritabanında sonuç bulunamadı.")
return None, None
else:
for row in results:
isim= row[0]
sehir= row[1]
return isim , sehir
except Exception as e:
print("Bir mysql hata oluştu:", e)
# Hata urumunda None değerleri döndür
return None, None
except Exception as e:
print("Bir hata oluştu:", e)
# Hata durumunda None değerleri döndür
return None, None pythonda sürekli mysql sorgusu yapma hakkında yardım
3
●180
- 25-03-2024, 04:31:16arkadaşlar bu kodlar ile mysql tablosundan while True: ile veri çekiyorum. Amacım kod çalıştığı sürece ilk mysql bağlantısını kullanmak.( her sorguda yeniden mysql bağlantısı yapmamak) Kodu ilk çalıştırdığımda eğer veri varsa çekiyor ancak tablo boş ise ve kodlar çalıştığında veritabanına bir veri eklendiğinde yeni eklenen veriyi çekmiyor.
- 25-03-2024, 04:53:16
import pymysql import time connection = None def get_veri(): global connection try: # Bağlantıyı kontrol et ve gerekirse yeniden bağlan if connection is None or not connection.open: connection = pymysql.connect(host="192.242.117.123", user="ss", password="hD5e27xy", database="ss") print("Bağlantı başarıyla kuruldu.") cursor = connection.cursor() # Veritabanından veri çek cursor.execute("SELECT * FROM keklik") results = cursor.fetchall() if not results: print("Veritabanında yeni veri bulunamadı.") return None else: for row in results: isim = row[0] sehir = row[1] print(f"İsim: {isim}, Şehir: {sehir}") # En son çekilen kaydı takip etmek için son kaydın ID'sini güncelleyebilirsiniz # last_id = results[-1][0] # ID sütunu ilk sütunsa ve sonuçlar ters sıralıysa except Exception as e: print(f"Bir hata oluştu: {e}") return None # Sürekli döngü içinde veri çek while True: get_veri() time.sleep(10) # 10 saniye beklet
chat gpt ile güncellettim hocam. - 25-03-2024, 14:08:33Teşekkür ederim sorun çözüldü.kazimolmez adlı üyeden alıntı: mesajı görüntüle