[Çözüldü] Python Mysql-connector güncelleme sorunu

Başlatan oguzcan, 17 Mayıs 2020 - 02:36:54

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

oguzcan

Merhabalar,

Mysql-connector kullanıyorum. Veri tabanında müşteriler tablosundaki verileri değiştirmek istiyorum. Messagebox olarak işlem başarılı veriyor fakat veritabanında tablo üzerinde güncelleştirme olmuyor.

if passentry != "":
    query=("UPDATE customer SET passw = %s WHERE mail = %s")
    value= (passentry2,mailal)
    mycursor2.execute(query,value)
    veritab.commit()

elif nameentry != "":
    query=("UPDATE customer SET name= %s WHERE mail = %s")
    value= (nameentry2,mailal)
    mycursor2.execute(query,value)
    veritab.commit()

elif surnameentry!= "":
    query=("UPDATE customer SET surname= %s WHERE mail = %s")
    value= (surnameentry2,mailal)
    mycursor2.execute(query,value)
    veritab.commit()

else:
    pass

.py

#1
commit yapmış mısın diye baktım yapmıssın
sorgu cümleside doğru yazılmış
iki ihtimal kalıyor

1-işlem başarılı uyarısını alıyorsan ozaman "WHERE mail" where ile kontrol ettirdiğin mail adresi veritabanında bulunmuyor olabilir.
2-if ile passentryi degiskeninin karşılaştırıyorsunuz ama sorgu cumlesinde passentry2 degiskenini veritabanına kaydetmek istiyorsun neden böyle * bir şey yapıyorusunuz?


if [b]passentry[/b] != "":
    query=("UPDATE customer SET passw = %s WHERE mail = %s")
    value= ([b]passentry2[/b],mailal)

oguzcan

1- veritabanında mail mevcut.
2-  passentry, profilim'de yer alan şifre değiştir'in entrysi. bunu çekerken tuple olarak çektiğini gördüm ve stringe çevirip o değişkene atadım. direkt passentry'i get methoduyla da koysam farketmiyor. işlem başarılı veriyor ama veritabanında güncelleme yapmıyor

mailal kısmı'da girişte mailin entry'sini get methodlu halini atadığım değişken

.py

#3
Alıntı yapılan: oguzcan - 17 Mayıs 2020 - 03:51:55
1- veritabanında mail mevcut.
2-  passentry, profilim'de yer alan şifre değiştir'in entrysi. bunu çekerken tuple olarak çektiğini gördüm ve stringe çevirip o değişkene atadım. direkt passentry'i get methoduyla da koysam farketmiyor. işlem başarılı veriyor ama veritabanında güncelleme yapmıyor

mailal kısmı'da girişte mailin entry'sini get methodlu halini atadığım değişken

1-sorgu cümlesinde problem yok oyuzden if koşulu çalışmıyor gibi duruyor programınız if koşullarına giriyor mu kontrol eder misiniz? committen sonra rasgele bir cümleyi print ile alabilirsn. if çalışıyormu onu görelim.

2-elif kullanmayın hepsini if ile kodlayın.
3-birde hiç bir şekilde if koşulu kullanmadan sorgu cümlenizi test edin çalışıyor mu?
4-kusura bakmayın kodun tamamını göremediğim için herşeyi denicez:)


oguzcan

#4
if içinde print yaptığımda yazmıyor ama if dışında print(sorgu) yazınca sorgunun komutu yazıyor
edit: eğer discord varsa oradan iletişime geçebilirsek sevinirim. öğrenciyim ve ilk uygulamam
if kaldırıp sadece bir tane sütunda değişiklik yaptığımda oldu.

.py

Alıntı yapılan: oguzcan - 17 Mayıs 2020 - 04:35:41
if içinde print yaptığımda yazmıyor ama if dışında print(sorgu) yazınca sorgunun komutu yazıyor
edit: eğer discord varsa oradan iletişime geçebilirsek sevinirim. öğrenciyim ve ilk uygulamam
if kaldırıp sadece bir tane sütunda değişiklik yaptığımda yine olmuyor. sütundaki değeri de sildi

scriptnizi code etiketleri arasına alarak paylaşırsanız garanti veremem ama daha hızlı sonuca ulaşabiliriz. diğer arkadaşlarda görmüş olur yardım etmek isteyen edebilir. (scriptin tamamı ltf)
malesef discord kullanmıyorum.

oguzcan

Alıntı yapılan: .py - 17 Mayıs 2020 - 04:47:57
Alıntı yapılan: oguzcan - 17 Mayıs 2020 - 04:35:41
if içinde print yaptığımda yazmıyor ama if dışında print(sorgu) yazınca sorgunun komutu yazıyor
edit: eğer discord varsa oradan iletişime geçebilirsek sevinirim. öğrenciyim ve ilk uygulamam
if kaldırıp sadece bir tane sütunda değişiklik yaptığımda yine olmuyor. sütundaki değeri de sildi

scriptnizi code etiketleri arasına alarak paylaşırsanız garanti veremem ama daha hızlı sonuca ulaşabiliriz. diğer arkadaşlarda görmüş olur yardım etmek isteyen edebilir. (scriptin tamamı ltf)
malesef discord kullanmıyorum.

Şöyle söyleyeyim. entrylerden birini doldurup güncelle basınca onu veritabanında değiştiriyor fakat bu sefer veritabanındaki diğer yazıları siliyor. Örneğin; ad kısmını girersem, veritabanındaki şifre ve soyad kısmını siliyor
    if sifreentt.get() != None:

        sorgu=("UPDATE musteriler SET sifre = %s WHERE mail = %s")
        deger=(sifreentt.get(),isim.get())
        mycursor2.execute(sorgu,deger) 
        veritab.commit()
    else:
        pass
    if adentt.get() !=None:
        sorgu=("UPDATE musteriler SET ad = %s WHERE mail = %s")
        deger=(adentt.get(),isim.get())
        mycursor2.execute(sorgu,deger) 
        veritab.commit()
    else:
        pass
    if soyadentt.get() != None:
        sorgu=("UPDATE musteriler SET soyad = %s WHERE mail = %s")
        deger=(soyadentt.get(),isim.get())
        mycursor2.execute(sorgu,deger) 
        veritab.commit()
    else:
        pass

.py

[mention=653043]@oguzcan[/mention]

if leri şu şekilde düzenle.

if (sifreentt.get() != "") is True:

oguzcan

Alıntı yapılan: .py - 17 Mayıs 2020 - 05:03:06
[mention=653043]@oguzcan[/mention]

if leri şu şekilde düzenle.

if (sifreentt.get() != "") is True:

Yaptım. Yine aynı şekilde. yazdığım kısım veritabanında değişti. diğer ikisinin veritabanındaki alanları ise doluyken boş oldu


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 17 Mayıs 2020 - 05:09:24

Alıntı yapılan: .py - 17 Mayıs 2020 - 05:03:06
[mention=653043]@oguzcan[/mention]

if leri şu şekilde düzenle.

if (sifreentt.get() != "") is True:

Yaptım. Yine aynı şekilde. yazdığım kısım veritabanında değişti. diğer ikisinin veritabanındaki alanları ise doluyken boş oldu

.py

[mention=653045]@oguzcan[/mention]

forumda sayfanın en üstüne bak orada sohbet kanalı linki var tıkla gel.

oguzcan

#10
stringin uzunlugunu alarak çözüldü teşekkürler [mention=653046]@.py[/mention]