2017-04-10 15 views
0

エントリウィジェットを持つtkinter guiと、ユーザが入力フィールドに数字を入力してから「submit」ボタンをクリックするボタンが必要です。ボタンが押されると、彼が設定したデータベースに彼のエントリーを保存します。次のようにTkinterエントリを使ってデータベースにデータを挿入する

これまでのところ、私のコードは次のとおりです。

db = Mysqldb.connect('localhost', 'root', '----', '----', 'design') 

cursor = db.cursor() 

def submit_it(): 
    cursor.execute('INSERT INTO time VALUES (data.get())') 

data = Entry(gui2, text = 'food name') 

data.place(x=100,y=100) 

submit = Button(gui2, text = 'submit', command = submit_it()) 

submit.place(x=200,y=200)  

私はこの仕事を得ることができる方法上の任意のアイデアが大幅に、再び...いただければ幸い私がやりたいと思っています、すべてのユーザー入力の何かを持っています入力フィールドに入力し、送信ボタンをクリックします。これが完了すると、彼のエントリは私のデータベースに保存されます:)

答えて

1

変更する必要がある2つの事柄は、操作に直接ではなくパラメータとしてdata.get()を配置します。また、ボタンのコマンドとして渡すときはsubmit_itを呼び出さないでください。

db = Mysqldb.connect('localhost', 'root', '----', '----', 'design') 
cursor = db.cursor() 

def submit_it(): 
    cursor.execute('INSERT INTO time VALUES (%s)', (data.get(),)) # place data.get() as a parameter as a type or list 

data = Entry(gui2, text = 'food name') 
data.place(x=100,y=100) 

submit = Button(gui2, text = 'submit', command = submit_it) # don't call submit_it, get rid of the() 
submit.place(x=200,y=200) 

はおそらく、後で変更を保存するdb.commit()db.close()を使用してデータベースをコミットして閉じるようにしたいです。

+0

申し訳ありませんが、私は次のエラーが表示されます:OperationalError:(1136、 "列数が行1の値と一致しません)"というアイデアはありますか? –

+0

@python_beginner_coder 'time'にはいくつのカラムがありますか?また、入力例は何ですか? – abccd

関連する問題