формат %d не требуется ошибка str в tkinter python для базы данных mysql

#python #mysql #python-3.x #tkinter #mysql-python

#python #mysql #python-3.x #tkinter #mysql-python

Вопрос:

мой виджет ввода

  e2 = Entry(f, width=20)
        e2.place(x=280,y=120)
  

я изменил его на тип int

  def add_data():
    roll=int(e2.get())
  

мой запрос на вставку данных в MySQL

  cursor.execute('insert into first_year( name,roll_number,phone_no, MATH,English,science) values(%s,%d,%s,%s,%s,%s)',(name, roll, phone_no, math, Eng, sci))

  

ошибка

 %d format: a number is required, not str
  

Комментарии:

1. Ваш add_data ничего не возвращает и не изменяет. Возможно, вы захотите прочитать больше о variable scope .

2. мой запрос и roll=int(e2.get()) находятся в одной и той же функции

3. Просто измените %d на %s

Ответ №1:

Просто измените %d на %s (даже для чисел), потому что заполнители не являются обычными Python, как вы можете видеть здесь

 cursor.execute('''insert into first_year( name,roll_number,phone_no,
                MATH,English,science) values(%s,%s,%s,%s,%s,%s)''',
                (name, roll, phone_no, math, Eng, sci))
  

Комментарии:

1. разве это не заставит пользователя вводить строку слишком долго, дай мне попробовать