2016-05-11 22 views
1

こんにちは、私は、Python関数を介してクエリを作成しています。SQLインサートが動作しません(エラーは表示されません)

特定の値を挿入しようとしています:成功した挿入が表示されますが、手動でデータベースを検索するとクエリが表示されません。

コードはこれです:

@post('/store_artist') 
def store_artist(): 
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='', db='songs') 
c = conn.cursor(); 
c.execute("SET NAMES 'utf8'"); 
c.execute("SET CHARACTER SET 'utf8'"); 
artist_name = request.forms.get('artist_name') 
artist_surname = request.forms.get('artist_surname') 
artist_bday = request.forms.get('artist_bday') 
artist_id = request.forms.get('artist_id') 
c.execute(("INSERT INTO kalitexnis (ar_taut,onoma,epitheto, etos_gen) VALUES (%s, %s, %s, %s)"),(int(artist_id),artist_name,artist_surname,int(artist_bday))) 
result = c.fetchall() 
return "Artist info successfully stored" 

任意のアイデア?ありがとう

+0

それぞれの値は入力されていて空ではありませんか? – Matt

+1

私は推測しているので、答えはありません:あなたは 'conn.commit()'が必要です。リファレンス:https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html http://stackoverflow.com/questions/384228/database-does-not-update -automatically-with-mysql-and-python –

+0

うん。 – panos

答えて

1

insertupdateのクエリのたびに、conn.commit()を呼び出してからdbに変更を保存する必要があります。

また、conn.autocommit(True)を呼び出すこともできます。変更はすぐにdbに保存されます。

+0

それは 'c.commit()'か 'conn.commit()'なのですか、それとも重要ですか? –

+0

@Robᵩ 'conn.commit()'は私がずっと前に読んだチュートリアルに基づいていつも使ってきたものです – roganjosh

+0

@Robᵩありがとう、本当に 'conn.commit()'です。私は私の答えを更新する – DeepSpace

関連する問題