저는 Python 언어에서 nube이고 저는 (Tkinter에서) Python GUI를 데이터베이스에 연결하는 데 어려움을 겪고 있습니다. 레이아웃은 최종 사용자가 항목 위젯을 통해 데이터베이스에 이름을 추가하도록하려는 경우와 같습니다. 나는 변수를 사용하여 데이터베이스에 저장할 텍스트를 얻기 위해 노력, 무엇인가 :Python GUI를 MySQL 데이터베이스에 연결하기
TypeError: query() argument 1 must be string or read-only buffer, not tuple
나는 데이터를 저장할 수있는 방법이있다 :
entr= Entry(frame1)
entr.grid(row=0, column=1)
var1=entr.get()
def save():
"""Save content in the entry box"""
con = mdb.connect(host="localhost", user="root", passwd="xxxxxx", db="xxxxxxx")
with con:
cur=con.cursor()
sql_update= "UPDATE Tests SET NAME='%s' WHERE id='%s'", (var1, id)
cur.execute(sql_update)
cur.close()
con.commit()
con.close()
이 오류 메시지를 다시 제공 그 대신 다른 곳에서 var1 = raw_input("Name: ")
을 사용할 필요없이 데이터베이스에 입력 위젯을 사용할 수 있습니까?
감사합니다. 코드가 작동하지 않은 이유 :
답장을 보내 주셔서 감사합니다. 나는 당신의 방법을 시도했고 이번에는 오류가 없으므로 그것을 테스트하기로 결정했다 : – butteredtoast
나는 단지'% s' 주위의 따옴표를 알아 차렸다. 당신은 그것들을 제거해야한다. dbapi는 속성을 적절하게 인용 (또는 데이터베이스에서 지원하는 경우 별도로 전달) 할 것이므로 직접 인용하면 문제가 발생합니다. – ThiefMaster
당신의 방법을 시도하고 이번에는 오류가 없으므로 cur.execute ("SELECT * FROM Tests")를 사용하여 테스트하기로 결정했습니다. rows = cur.fetchall() 행의 행 : 인쇄 행 (3L, " '") (2L, "'") (5L, " ' 그 문제가 있습니다. 나는 그것이 고통스럽게 분명해야하지만 그것을 참조하는 방법 var1 = ent.get()이 출력을주는거야? 입력 위젯에서 텍스트를 가져 오는 다른 방법은 없습니까? 귀하의 도움을 크게 주시면 감사하겠습니다. – butteredtoast