database kolom oproepen

Status
Niet open voor verdere reacties.

thomasb

Gebruiker
Lid geworden
6 jan 2013
Berichten
118
Haihai allemaal, ik ben bezig met een programma in python. Nou wilde ik een log-in systeem maken alles leuk geschreven enzo, maar toen kreeg ik deze error:

Traceback (most recent call last):
File "console.py", line 169, in <module>
logon()
File "console.py", line 160, in logon
if maincur.execute("SELECT * FROM 'users' WHERE 'username' = "' + username + '"AND WHERE 'password' = "' + upass '""):
sqlite3.OperationalError: near "AND": syntax error

kan iemand me plz helpen?!?! Hier is de sourcecode:
import sqlite3 as db

Code:
maindb = db.connect("logins.db")
maincur = maindb.cursor()
loggedin = False
def logon():
    username = input("Username: ")
    upass = getpass.getpass(prompt="Password: ")
    if maincur.execute("SELECT * FROM 'users' WHERE 'username' = "' + username + '"AND WHERE 'password' = "' + upass '""):
        maindb.commit()
        loggedin = True
        print("You are logged in as " + username)
    else:
        maindb.commit()
        print("Login failure!")
        logon()

logon()
Ik hoor graag als je het weet,

laterz grtjs thomasb:confused:

P.S, Ik gebruik python 3.4.1 en sqlite3 module voor python
 
Als ik het zo zie lijkt het er op dat je een paar quotes verkeerd hebt neer gezet. Dit is altijd verwarrend wanneer je op deze manier een query op bouwt.
Het is sowieso aan te raden om een prepared statement te gebruiken. Dit is veiliger en overzichtelijker. Ik heb hier geen ervaring mee in Python, maar er moet genoeg over te vinden zijn :)
Je huidige query zou volgens mij zo moeten werken:

Code:
maincur.execute("SELECT * FROM 'users' WHERE 'username' = '" + username + "'AND WHERE 'password' = '' + upass +"'")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan