Python MySQL: не отображаются вставленные записи

Я использую Python 2.7 с 32-битной MySQLdb, а также локальную версию MySQL 5.5.8.

Я схожу с ума по этому поводу, я никогда не видел ничего подобного.

По сути, я вставляю записи в MySQL из Python через:

db=MySQLdb.connect(host="localhost",user="root", passwd="mypassword",db="python",port=3307)
cur=db.cursor()
cur.execute("INSERT INTO mytable(myfield) VALUES(%s);","somedata")

Я убедился, что он правильно подключен и может успешно SELECT получать данные из базы данных.

Вот странная часть: из браузера запросов MySQL (инструмент с графическим интерфейсом) И из MySQL через CMD я не могу видеть вставленные записи.

Я могу вставлять и выбирать записи из своего скрипта Python, но они НЕ отображаются в моей базе данных, он просто возвращает Empty Set (0.00 sec)

И вот что действительно странно: я могу обрезать и удалять данные из инструмента с графическим интерфейсом и из консоли.

Подводя итог: я могу вставлять и выбирать данные из скрипта Python. Я не вижу эти данные в MySQL. Однако я могу обрезать и удалить эти данные с помощью MySQL.

Я полностью потерян в этот момент.


person MrZander    schedule 04.04.2012    source источник


Ответы (1)


Если ваш код работает в консоли, но не иначе, я считаю, что вам нужно добавить строку

db.autocommit(True)

После подключения или нужно сделать db.commit() после ваших вставок.

person Nolen Royalty    schedule 04.04.2012
comment
В этом случае метод commit не относится к db? - person exhuma; 04.04.2012
comment
Вы абсолютно правы @exhuma, моя ошибка. - person Nolen Royalty; 04.04.2012
comment
Хотел бы я найти это в примерах в документации... Спасибо!!! Я приму ваш ответ ок. 4 минуты! - person MrZander; 04.04.2012