Python: ValueError: unsupported format character ''' (0x27) at index 1
It looks like python is interpreting the % as a printf-like format character. Try using %%?
"SELECT fileid
FROM files
WHERE description LIKE '%%%s%%'
OR filename LIKE '%%%s%%'
OR uploader LIKE '%%%s%%'
ORDER BY fileid DESC" % (search, search, search)
Just for you info: I tried the solution of @Pochi today, in Python 3.6, and for some reason it provoked not expected behaviour. I had two, and three arguments for format string, so at the end was:
% (Search, Search)
My string ("search") began with an upper "S". I got the error message:
ValueError: unsupported format character 'S' (0x53) at index 113
I changed uppercase to lowercase, and the error was:
TypeError: not enough arguments for format string
Then I just put my arguments inside of double %% at the beginning and the end, and it worked. So my code looked like:
"SELECT fileid
FROM files
WHERE description LIKE '%%search%%'
OR filename LIKE '%%search%%'
ORDER BY fileid DESC"
Another solution would be the one provided by @Alice Yuan. She just doubled the percentage sings, and it works.
My solution:
query = """SELECT id, name FROM provice WHERE name LIKE %s"""
cursor.execute(query, '%%%s%%' % name)
I think it's easy way to fix this issue!