I can't seem to figure out what is wrong with my code, but I keep getting the:
error "binding parameter 0 - probably unsupported type".
Here is my code:
last = 'EBERT'
sakila = connect("sakila.db")
res = sakila.execute("SELECT first_name, last_name FROM customer WHERE last_name = ?",[(last,)])
for row in res:
print(row)
When I have it where 'EBERT
' is in the query and not set to a variable, it works fine, so I know it's a problem with the tuple syntax or something. I've tried it without the brackets, with a second variable for first_name
, with and without a separately defined cursor, and basically every method I can think of, and I've researched for hours but have gotten nowhere, so any help would be super appreciated.
Nested lists, tuples are used for executemany
, not for execute
.
Pass a flat list (or tuple) that contians parameters.
res = sakila.execute(
"SELECT first_name, last_name FROM customer WHERE last_name = ?",
(last,))
or
res = sakila.execute(
"SELECT first_name, last_name FROM customer WHERE last_name = ?",
[last])
I was getting the same error, sorted out that my data type was mismatched. I then converted it into string;
cursor.execute('''INSERT INTO employees VALUES (?);''', (str(data[0]), ))
and it worked fine. Hope this will be helpful for someone.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With