sqlite3 “OperationalError: near ”)“: syntax error” python -


this function supposed check ingredient user entered following prompt. when try query statement in sqlite (without user input of course) works. in python says there error!

def checkingredient():     usringredient = input("\nenter ingredient make drink with: \n\n")      query = c.execute("select drdesc drinks drdrid in "     "(select dtdrid detail ingid ="     "(select ingid ingredients indesc like))", (usringredient,))       resultset = c.fetchall()      result in resultset:         if resultset not none:             print(result)         else:             print("sorry, there no drinks ingredient") 

you haven't included sql parameter placeholder in query. you'll have place ? in query each value want interpolate:

query = c.execute("""     select drdesc drinks drdrid in       (select dtdrid detail ingid =         (select ingid ingredients indesc ?))     """, (usringredient,)) 

you may want making joins, doubt using nested selects going perform well. suspect following work better:

query = c.execute("""     select dr.drdesc     drinks dr      inner join detail dtd on dr.drdrid == dtd.dtdrid     inner join ingredients ing on dtd.ingid = ing.ingid     ing.indesc ?     """, (usringredient,)) 

if wanted usringredient treated substring search, you'll have add wildcards like work correctly. surround value % characters:

usringredient = '%{}%'.format(usringredient) 

this replaces string eggs %eggs% find matching ingredient descriptions contain text eggs.


Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -