I looked all over for the answer to my question and could not find any good answer…. I am using python with the sqlite3 module to query a database. The problem is that I cannot get a sql query to hold multiple variables. For example…
I can get this query to work perfectly. (“wordsofar” is the variable name)
c.execute("SELECT word FROM wordlist WHERE word LIKE ?", wordsofar)
However I cannot get this code to work. (“wordsofar” and “noletter” are the variable names)
c.execute("SELECT word FROM wordlist WHERE word LIKE ? AND word NOT LIKE ?", (wordsofar, noletter))
It gives me the error: “Error binding parameter 0”
I have tried to rewrite the query so instead of “?” it is using the named convention such as shown by http://docs.python.org/py3k/library/sqlite3.html (about half way down the page) but that did not solve the problem.
Any help would be much appreciated. Thank-you!
This line (that you say works) shows that
wordsofaris a sequence of one element:In this case the second line should be:
If
noletteris a string andwordsofaris a tuple (as you say in your comment).execute()docs say that the second argument is alwaysparameters. If you use ‘?’ then number of parameters (len(parameters)) is equal to number of ‘?’ in the sql statement.