I try to execute this sqlite3 query in Python. I reduced the code to the minimum, sqlite.connect, etc works.
column = 'Pron_1_Pers_Sg'
goal = 'gender'
constrain = 'Mann'
with con:
cur = con.cursor()
cur.execute("SELECT ? FROM Data where ?=?", (column, goal, constrain))
con.commit()
rows = cur.fetchall()
for element in rows:
values.append(element)
This returns an empty list.
If I hardcode the strings, it works and returns values.
Parameter markers can be used only for expressions, i.e., values.
You cannot use them for identifiers like table and column names.
Use this:
or this:
(And don’t commit before you have actually finished accessing the data.)