Reputation: 9538
Im currently learning SQLite3 with Python. I'm looking at the manual, and it tells me to do something like the following:
data = (tablename, )
c.execute("CREATE TABLE IF NOT EXISTS ?(uid INTEGER PRIMARY KEY, title TEXT NOT NULL, duedate INTEGER NOT NULL, description TEXT, archived INTEGER)", data)
I'm getting an error, however. It's stated as follows:
sqlite3.OperationalError: near "?": syntax error
What's going on?
Upvotes: 1
Views: 471
Reputation: 70059
sadly the DB-API’s parameter substitution ?
don't work with table name , columns name .. and it's the same in all DB API in python.
the DB-API’s parameter substitution just work for value like in SELECT * FROM table WHERE id = ?
, so you will have to do string formating or just put the name table in the string directly.
query = "CREATE TABLE IF NOT EXISTS %s (uid INTEGER PRIMARY KEY, title TEXT NOT NULL, duedate INTEGER NOT NULL, description TEXT, archived INTEGER)" % table_name
conn.execute(query)
Upvotes: 3