• 11-03-2020, 23:29:19
    #1
    Merhaba;

    Aşağıdaki örnek kod ile veriyi çekiyorum fakat aynı fonksiyon içinde bu veriyle update yapmam lazım. Yapamadım.
    İkinci connection vs hep hata verdi.

    Bilgisi olan ?

    import pymysql
    connection = pymysql.connect(host='192.168.1.1',user='bla',password='blablabla',db='bbbla',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
    with connection.cursor() as cursor:
        sql = "select veri1,veri2 from database"
        cursor.execute(sql)
    for row in cursor.fetchall():
        veri1= str(row["veri1"])
        veri2 = str(row["veri2 "])
    print("veri1: " + veri1)
    print("veri2 : " + veri2 )
    connection.close()
    %s parametre kullanıyorum fakat ikinci bağlantıyı açamıyorum bir türlü...
  • 11-03-2020, 23:31:41
    #2
    Botman, Codemaster
    haXan1711 adlı üyeden alıntı: mesajı görüntüle
    Merhaba;

    Aşağıdaki örnek kod ile veriyi çekiyorum fakat aynı fonksiyon içinde bu veriyle update yapmam lazım. Yapamadım.
    İkinci connection vs hep hata verdi.

    Bilgisi olan ?

    import pymysql
    connection = pymysql.connect(host='192.168.1.1',user='bla',password='blablabla',db='bbbla',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
    with connection.cursor() as cursor:
    sql = "select veri1,veri2 from database"
    cursor.execute(sql)
    for row in cursor.fetchall():
    veri1= str(row["veri1"])
    veri2 = str(row["veri2 "])
    print("veri1: " + veri1)
    print("veri2 : " + veri2 )
    connection.close()
    %s parametre kullanıyorum fakat ikinci bağlantıyı açamıyorum bir türlü...
    Python bilgim yok fakat PHP ile çok benzer ondan dolayı döngünün içine update sorgusu yazıp veri1 ve veri2 değişkenlerini update yapın. Update için sorgu yapmamışsınız sadece veriyi çekip döngü ile vermişsiniz.



    HelixTm adlı üyeden alıntı: mesajı görüntüle
    Python bilgim yok fakat PHP ile çok benzer ondan dolayı döngünün içine update sorgusu yazıp veri1 ve veri2 değişkenlerini update yapın. Update için sorgu yapmamışsınız sadece veriyi çekip döngü ile vermişsiniz.
    Örnek , netten buldum;

    for items in input:
    sql="""UPDATE mytable
    SET COL1=%s, COL2=%s
    WHERE ID=%s"""
    mycursor.execute(sql, tuple(items))
    connection.commit()
  • 11-03-2020, 23:34:04
    #3
    Mehaba
    Göndermiş olduğunuz satırlarda tek bir bağlantı, ve tek bir sorgu bulunmakta
    yani sadece bir konusu select yapmışlar (ya da yapılmış)

    ve data fetchall ile içinde dönülerek alınıyor
    fakat bunun update komutu yada nereye update edilecegi filan yazmıyor
  • 11-03-2020, 23:45:41
    #4
    @HelixTm;

    Teşekkürler bilgi verdiğiniz için. Fakat işte benim de anlamadığım konu bu. Verdiğiniz kodda ikinci bir mycursor oluşturulmuş. Ben zaten select kısmında cursor oluşturmuştum. Onunla devam edemiyor muyum ? İlla yeniden mi cursor ve bağlantı bilgileri oluşturmam lazım ?

    Kodu yazamıyorum. Ekran görüntüsünü almak zorunda kaldım. R10 saldırı yapıyorum zannedip beni blokluyor...

  • 11-03-2020, 23:53:27
    #5
    Botman, Codemaster
    haXan1711 adlı üyeden alıntı: mesajı görüntüle
    @HelixTm;

    Teşekkürler bilgi verdiğiniz için. Fakat işte benim de anlamadığım konu bu. Verdiğiniz kodda ikinci bir mycursor oluşturulmuş. Ben zaten select kısmında cursor oluşturmuştum. Onunla devam edemiyor muyum ? İlla yeniden mi cursor ve bağlantı bilgileri oluşturmam lazım ?

    Kodu yazamıyorum. Ekran görüntüsünü almak zorunda kaldım. R10 saldırı yapıyorum zannedip beni blokluyor...

    cursor dediğin sanırım sorguyu çalıştırıyor. Update için de aynı işlemi 2. defa tekrarlaman gerekir, en azından PHP'de mantık böyle. Muhtemelen aynı şekilde çalışıyordur.
  • 12-03-2020, 01:00:04
    #6
    Fonksiyonlar içine aldım. Kimlik değişkenini SQLUpdate fonksiyonunun içine gönderiyorum fakat SendWP kolonuna E harfini yazdıramıyorum..

    def KimlikSaat():
        global Kimlik
        try:
            connection = pymysql.connect(host='192.168.1.1',user='root',password='abc',db='database',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
            with connection.cursor() as cursor:
                sql = "select Kimlik,Saat FROM BildirilenHatalar where Hata like 'NUMUNE YOK' and SendWP not like 'E' order by Kimlik asc limit 1"
                cursor.execute(sql)
            for row in cursor.fetchall():
                Kimlik = str(row["Kimlik"])
                Saat = str(row["Saat"])
                print (Kimlik)
                print (Saat)
                return (Kimlik)
        finally:
            cursor.close()
            connection.close()
            
    def SQLUpdate():
        try:
            connection = pymysql.connect(host='192.168.1.1',user='root',password='abc',db='database',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
            with connection.cursor() as cursor:
                update = """ update BildirilenHatalar set SendWP = %s where Kimlik = %s """
                cursor.execute(update,'E',Kimlik)
                connection.commit()
                print ("Veri güncellendi")
        except TypeError:
            print ("Hata oluştu!")
        finally:
            cursor.close()
            connection.close()
    
    
    KimlikSaat()
    SQLUpdate()