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



@barracuda_x12

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


Решения вопроса 1



@Fockker

«I am try» звучит примерно как «я попытайся».

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

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

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

  • внимательно прочитать сообщение об ошибке и подумать — что оно означает.
  • вывести все промежуточные результаты нашей программы, чтобы понять — в каком месте всё пошло не так


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован.