Python ve sqlite ile yapılmış programım istedigim gibi çalışmıyor

Merhaba.Aşağıdaki benim programımın kodları kullanıcı adı yanlış hatası veriyor.
import sqlite3,os
import tkinter as tk
import time
import sys
dosya = ‘Ballı veritabanı.sqlite’
dosya_mevcut = os.path.exists(dosya)
pencere = tk.Tk()
vt = sqlite3.connect(dosya)
im = vt.cursor()
im.execute(""“CREATE TABLE IF NOT EXISTS Kullanıcılar (kullanıcıadı, parola)”"")
veriler = [
(“Admin”, “3537”),
(“t5”, “yuo”),
(“Ahmet34”, “789076”),
]
if not dosya_mevcut:
for i in veriler:
im.execute(""“INSERT INTO Kullanıcılar VALUES (?, ?)”"", i)
vt.commit()
def pepe():
im.execute(""“SELECT * FROM Kullanıcılar WHERE
kullanıcıadı = '%s ’ AND parola = '%s '”""%(Giriş, Giriş2))
data = im.fetchall()
if data:
for i in pencere.winfo_children():
i.destroy()
Başarılı = tk.Label(text=“Başarılı Giriş!”)
Başarılı.pack()
else:
for i in pencere.winfo_children():
i.destroy()
Başarısız = tk.Label(text=“Kullanıcı adı veya parola yanlış!”)
Başarısız.pack()

Bal = tk.Label(text=“BalBook’a hoşgeldiniz”)
Bal.pack()
Bal2 = tk.Label(text=“Kullanıcı Adı:”)
Bal2.pack()
Giriş = tk.Entry()
Giriş.pack()
Bal3 = tk.Label(text=“Parola:”)
Bal3.pack()
Giriş2 = tk.Entry()
Giriş2.pack()
Giriş3 = tk.Button(text=“Giriş”, command=pepe)
Giriş3.pack()
vt.commit()
pencere.mainloop()

sqlite veritabanında problem yok bu arada.Veritabanı düzgünce çalışıyor.Burada kullanıcıadı ve parolayı düzgün girsemde “kullanıcı adı veya parola yanlış” hatası veriyor.Lütfen biri bana yardım edebilir mi?

'%s ' mi yaziyor orada?

Zaten query parametrelerini SELECT’teki gibi string olarak degil INSERT’teki gibi parametre olarak paslamalisin.

1 Beğeni

Sağol ama ben oraya yanlış yazdım.Ben kodlarımı 4 girintileme ile yazdım.Onda bir problem yok.Bu arada son dedigin cümleyi anlamadım.Bana basitçe anlatabilir misin?Bir de o '%s ’ i ‘%s’ olarak yazdım yine aynı hatayı verdi.

Sorunuza da doğru yazarsanız biz de doğru kodu görmüş oluruz. Şu an kodunuzdan pek bir şey anlaşılmıyor.


im.execute("""SELECT * FROM Kullanıcılar WHERE
kullanıcıadı = '%s ’ AND parola = '%s ' """%(Giriş, Giriş2))

Bu kodund a INSERT komutundaki gibi ‘?’ ile yazılması gerektiğini söylemiş.

Onların yerine ‘?’ yazınca kullanıcı adı ve şifreyi girdigimde TypeError: ‘str’ object is not callable hatası veriyor.

Kodunuzu @aib’in attığı linke göre yollayın istiyorsanız inceleyelim.