2016-03-21 6 views
0

Also habe ich eine Funktion, die als Parameter eine Zeichenfolge und dann verwendet eine Select-Klausel WHERE, um die Werte nur für diesen Parameter, aber aus irgendeinem Grund wird es nicht arbeiten. Ich habe versucht (ar), „ar“, ‚% s‘% ar Keiner von denen ist für mich arbeiten bitte helfenKann nicht meinen Parameter in SELECT WHERE-Klausel in Python arbeiten

def getLoc(ar): 
    cursor = conn.execute("SELECT location.name from area,location WHERE area.name = ***(ar)*** ") 


get_locations_for_area("Columbia") 
conn.close() 

Antwort

2

den Code verwendet Formatierung Ihre Frage leichter lesbar zu machen! Ich denke, so, wie es funktionieren würde, ist:

def getLoc(ar): 
    cursor = conn.execute("SELECT location.name FROM area,location WHERE area.name = ?", (ar,)) 

Was das bedeutet ist, die Fragezeichen auf das zweite Argument von conn.execute() entsprechen machen. Im Grunde ist es, Variablen als Parameter Ihrer Abfrage zu setzen.

+1

Vielen Dank das hat für mich funktioniert –

0

Dies ist, wie Sie diese Anweisung

Cursor = conn.Execute ("SELECT location.name aus dem Bereich, Standort WHERE area.name =% s" % ar)

+0

Vielen Dank somuch –

+0

Dies ist keine gute Idee. Aus Python-Dokumenten unter https://docs.python.org/2/library/sqlite3.html "Sie sollten Ihre Abfrage nicht mit Pythons String-Operationen zusammenstellen, da dies unsicher ist." –