2016-05-11 2 views
1

Привет, я создаю запросы через функции python.Вставка SQL не работает (ошибок не появляется)

Когда я пытаюсь вставить определенные значения: появляется вставка succesfull, но мой запрос не появляется, когда я ищу базу данных вручную.

Код это:

@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

yep. Просто напечатайте их на python, чтобы убедиться, что – panos

ответ

1

После каждого insert и update необходимо вызвать запрос на внесение изменений в db.

В качестве альтернативы вы можете позвонить conn.autocommit(True), после чего изменения будут немедленно сохранены в db.

+0

Это 'c.commit()' или 'conn.commit()', или это имеет значение? –

+0

@ Robᵩ 'conn.commit()' это то, что я всегда использовал на основе учебников, которые я прочитал некоторое время назад – roganjosh

+0

@ Robᵩ Спасибо, это действительно 'conn.commit()'. Я обновлю свой ответ – DeepSpace

Смежные вопросы