MySQL Проблема с преобразователем типа - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в tkinter и пытаюсь подключить python к MySQL. Когда я пытаюсь вставить записи через новое окно в python, я получаю следующее сообщение об ошибке:

 Exception in Tkinter callback
 Traceback (most recent call last):
 File "C:\Users\sapna\anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
 return self.func(*args)
 File "C:\Users\sapna\Desktop\SAMARTH.py", line 141, in dynamic_data_entry
 libcur.execute("INSERT INTO tcl VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" , 
(id1,name1,auth1,doi1,dor1,reiss,rname,Address,gen1,mil1))
File "C:\Users\sapna\anaconda3\lib\site-packages\mysql\connector\cursor_cext.py", line 248, in 
execute
prepared = self._cnx.prepare_for_mysql(params)
File "C:\Users\sapna\anaconda3\lib\site-packages\mysql\connector\connection_cext.py", line 626, in 
prepare_for_mysql
result = self._cmysql.convert_to_mysql(*params)
_mysql_connector.MySQLInterfaceError: Python type method cannot be converted

Вот фрагмент моей команды вставки.

def dynamic_data_entry():
    bname.delete(0,END)
    bid.delete(0,END)
    author.delete(0,END)
    DOI.delete(0,END)
    DOR.delete(0,END)
    RES.delete(0,END)
    RNM.delete(0,END)
    AD.delete(0,END)
    mail.delete(0,END)
    id1=ln.get()
    name1=fn.get()
    auth1=dn.get()
    doi1=an.get()
    dor1=gn.get()
    rname=kn.get()
    Address=pn.get
    reiss=mn.get()
    gen1=var.get()
    mil1=ll.get()
    libcur.execute("INSERT INTO tcl VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" , 
(id1,name1,auth1,doi1,dor1,reiss,rname,Address,gen1,mil1))
    mydb.commit()
    messagebox.showinfo("INSERT STATUS","RECORD HAS BEEN ADDED SUCCESSFULLY")
    libcur.close()

Тип данных я использовал varchar () в Book_id, DOI, DOR и char () в других для MySQL. Все типы данных, которые я использовал в Python, следующие:

var=StringVar()
fn=StringVar()
yn=StringVar()
ln=StringVar()
dn=StringVar()
an=StringVar()
kn=StringVar()
gn=StringVar()
mn=StringVar()
pn=StringVar()
ll=StringVar()

Заранее спасибо

1 Ответ

1 голос
/ 09 июля 2020

Похоже, вы пропустили скобки в задании на Address. Попробуйте Address=pn.get().

Ошибка означает, что вы передаете метод, а не значение. Это соответствует Address=pn.get, т.е. вы передаете метод pn.get, а не возвращаемое значение pn.get().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...