Не все параметры были использованы в инструкции SQL Python — MySQL

#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)