#python #mysql
Вопрос:
Я хочу проверить, существует ли уже идентификатор, но я получаю эту ошибку:
Not all parameters were used in the SQL statement
Код:
Id = "TEST"
sql = """SELECT * FROM musics WHERE Id = %s"""
dbc.execute(sql, Id)
row = cursor.rowcount
if row == 0:
#NOT EXSIST
Комментарии:
1. Вам нужно собрать
Id
кортеж.
Ответ №1:
Вторым аргументом execute()
должна быть последовательность значений, по одному для каждого маркера-заполнителя %s
в запросе.
Вы действительно передали последовательность, но не так, как намеревались. Строки являются последовательностями, поэтому вы фактически передали последовательность из четырех значений — T, E, S, T
, что слишком много значений, потому что в запросе есть только один маркер-заполнитель.
Передайте строку в виде одноэлементного кортежа, например так:
args = ("TEST",)
sql = """SELECT * FROM musics WHERE Id = %s"""
dbc.execute(sql, args)