私はPython言語ではうんざりです。私はPython GUI(Tkinter)をデータベースにリンクするのに苦労しています。レイアウトは、エンドユーザーがEntryウィジェットを介してデータベースに名前を追加するようにします。私は、変数を使用して、データベースに保存したテキストを取得しようとしました、何かのように: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、 "'") (4L、 "'") (5L、 "'")これは変数であることを意味しますそれには問題があります。私はそれが痛いほど明白なはずですが、私はこの出力を与えるvar1 = ent.get()を参照している方法ですか?エントリウィジェットからテキストを取得する他の方法はありますか?あなたの助けが大変ありがとうございます。 – butteredtoast