#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. разве это не заставит пользователя вводить строку слишком долго, дай мне попробовать