Nov-22-2019, 10:57 AM
Hello, As the subject of this message implies, the following code:
after I enter username & password
What am I missing here ?
I'm using Visual Studio Code 1.40.1 on a windows 10 with mysql server 8.0 along with Python 3.8 installed.
#imports from tkinter import * from tkinter import messagebox as ms import mysql.connector as mysql mydb = mysql.connect( host="localhost", user="james", passwd="simplepassword", database="testdb" ) #main Class class main: def __init__(self,master): # Window self.master = master # Some Usefull variables self.username = StringVar() self.password = StringVar() self.n_username = StringVar() self.n_password = StringVar() #Create Widgets self.widgets() #Login Function def login(self): #Establish Connection cursor = mydb.cursor() #Find user If there is any take proper action find_user = ("SELECT * FROM user WHERE username = ? and password = ?") #find_user = ('SELECT username = ? and password = ? FROM testdb.user') cursor.execute("SELECT [(self.username.get()),(self.password.get())]") result = cursor.fetchall() if result: self.logf.pack_forget() self.head['text'] = self.username.get() + '\n Loged In' self.head['pady'] = 150 else: ms.showerror('Oops!','Username Not Found.') def new_user(self): #Establish Connection cursor = mydb.cursor() #Find Existing username if any take proper action find_user = ('SELECT * FROM user WHERE username = ?') cursor.execute(find_user,[(self.username.get())]) if cursor.fetchall(): ms.showerror('Error!','Username Taken Try a Diffrent One.') else: ms.showinfo('Success!','Account Created!') self.log() #Create New Account insert = 'INSERT INTO user(username,password) VALUES(?,?)' cursor.execute(insert,[(self.n_username.get()),(self.n_password.get())]) cursor.commit() #Frame Packing Methords def log(self): self.username.set('') self.password.set('') self.crf.pack_forget() self.head['text'] = 'LOGIN' self.logf.pack() def cr(self): self.n_username.set('') self.n_password.set('') self.logf.pack_forget() self.head['text'] = 'Create Account' self.crf.pack() #Draw Widgets def widgets(self): self.head = Label(self.master,text = 'LOGIN',font = ('',35),pady = 10) self.head.pack() self.logf = Frame(self.master,padx =10,pady = 10) Label(self.logf,text = 'Username: ',font = ('',20),pady=5,padx=5).grid(sticky = W) Entry(self.logf,textvariable = self.username,bd = 5,font = ('',15)).grid(row=0,column=1) Label(self.logf,text = 'Password: ',font = ('',20),pady=5,padx=5).grid(sticky = W) Entry(self.logf,textvariable = self.password,bd = 5,font = ('',15),show = '*').grid(row=1,column=1) Button(self.logf,text = ' Login ',bd = 3 ,font = ('',15),padx=5,pady=5,command=self.login).grid() Button(self.logf,text = ' Create Account ',bd = 3 ,font = ('',15),padx=5,pady=5,command=self.cr).grid(row=2,column=1) self.logf.pack() self.crf = Frame(self.master,padx =10,pady = 10) Label(self.crf,text = 'Username: ',font = ('',20),pady=5,padx=5).grid(sticky = W) Entry(self.crf,textvariable = self.n_username,bd = 5,font = ('',15)).grid(row=0,column=1) Label(self.crf,text = 'Password: ',font = ('',20),pady=5,padx=5).grid(sticky = W) Entry(self.crf,textvariable = self.n_password,bd = 5,font = ('',15),show = '*').grid(row=1,column=1) Button(self.crf,text = 'Create Account',bd = 3 ,font = ('',15),padx=5,pady=5,command=self.new_user).grid() Button(self.crf,text = 'Go to Login',bd = 3 ,font = ('',15),padx=5,pady=5,command=self.log).grid(row=2,column=1) #create window and application object root = Tk() root.title("Login Form") main(root) root.mainloop()Generates: mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[(self.username.get()),(self.password.get())]' at line 1
after I enter username & password
What am I missing here ?
I'm using Visual Studio Code 1.40.1 on a windows 10 with mysql server 8.0 along with Python 3.8 installed.