Похоже, ваша проблема в том, что вы указали строку в качестве второго аргумента для cur.execute
, когда вы, вероятно, намеревались предоставить одноэлементный кортеж, содержащий строку.
Поскольку строка является последовательностью, каждый символ в строке будет интерпретироваться как отдельный параметр, и поэтому вы видите ошибку «Неправильное количество привязок».
Попробуйте:
cur.execute("select * from contacts where name like ?", ('%'+search+'%',))
Обратите внимание на запятую в кортеже, ('%'+search+'%',)
. Без него это не кортеж, а просто строка в скобках.