@barracuda_x12

Why does Not all parameters were used in the SQL statement error apear?

I am noob in python and i could not find the mistake. I have connected to mysql server and everything was working. I am try to insert variable into table and i get this mistake
Exception has occurred: ProgrammingError
Not all parameters were used in the SQL statement

mycursor = mydb.cursor()

now =datetime.datetime.now()
min_=now.minute*2
mon=now.month*6
yrs = now.year*7
hour=now.hour*4
date=now.day*9
Key=f"{min_}{mon}{yrs}{hour}{date}"
autho_key = list(Key)

sql = "INSERT INTO users(auth_key) VALUES (%s)"
val = (autho_key)
mycursor.execute(sql, val)

mydb.commit()
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
"I am try" звучит примерно как "я попытайся".

По поводу ошибки. Самое важное, чему должен научиться каждый нуб в питоне (а точнее - в программировании в целом) - это такое понятие, как отладка.
В которой нет ничего сложного. Это всего лишь означает посмотреть глазками на результат своих действий.

В том, чтобы наугад писать какие-то слова от балды, нет ничего зазорного - мы все так делаем. Примерно как с английским - да какая разница, try или trying? Но в отличие от английского, языки программирования позволяют нам проверить, соответствует ли результат ожидаемому.
И в данном случае сообщение об ошибке нам даже подсказывает, куда смотреть: ему явно не нравится значение, которое мы добавляем в БД. И дальше надо сделать две простые вещи:
Первое - спросить себя, сколько значений мы хотим добавить в БД?
И второе - распечатать переменную, которая содержит эти самые значения. Сделать такую банальность, как print(val). И сравнить реальность с ожиданиями.
А дальше совсем просто - полюбовавшись на дело рук своих, начинаем смотреть: каких-таких функций мы навызывали, что у нас получился такой результат. И избавиться от ненужной.

Но это всё мелочь и ерунда по сравнению с важнейшим понятием отладки, с которым мы познакомились сегодня. Поэтому повторим:
  • внимательно прочитать сообщение об ошибке и подумать - что оно означает.
  • вывести все промежуточные результаты нашей программы, чтобы понять - в каком месте всё пошло не так
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы