Saya baru mengenal tkinter dan saya mencoba menghubungkan python dengan MySQL. Ketika saya mencoba memasukkan catatan melalui jendela baru dengan python saya mendapatkan pesan kesalahan berikut:

 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

Ini adalah potongan dari perintah insert saya.

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

Tipe data yang saya gunakan adalah varchar() di Book_id,DOI,DOR dan char() di MySQL lainnya. Semua tipe data yang saya gunakan di Python adalah sebagai berikut

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

Terima kasih sebelumnya

0
Samarth Gosain 9 Juli 2020, 07:29

1 menjawab

Jawaban Terbaik

Sepertinya Anda melewatkan beberapa tanda kurung dalam tugas Anda ke Address. Coba Address=pn.get().

Kesalahan menyiratkan bahwa Anda melewati metode daripada nilai. Ini konsisten dengan Address=pn.get, yaitu Anda meneruskan metode pn.get daripada nilai kembalian pn.get().

1
Michael Ruth 9 Juli 2020, 04:35