On Fri, Aug 21, 2015 at 11:39 AM, Cecil Westerhof <ce...@decebal.nl> wrote:
> I have the following with sqlite3:
> urls = c.execute('SELECT URL FROM LINKS WHERE URL = ?', url).fetchall()
>
> But this gives:
> Traceback (most recent call last):
>   File "./createDB.py", line 52, in <module>
>     urls = c.execute('SELECT URL FROM LINKS WHERE URL = ?', url).fetchall()
> sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current 
> statement uses 1, and there are 40 supplied.
>
> The number of bindings is the length of the string.
> What is happening here? Why is every character of the string seen as a
> binding, instead of the string being the binding?

Because the execute method expects the bindings to be passed as a
sequence, which means to pass a single binding you need to wrap it in
a sequence: `c.execute('SELECT url FROM links WHERE url = ?', (url,))`

-- 
Zach
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to