MySQLdb не вставляется, _mysql работает нормально

#python #mysql

#python #mysql

Вопрос:

Хорошо, я вхожу в клиент командной строки MySQL как root. Затем я открываю или иным образом запускаю приложение на python, используя модуль MySQLdb от имени root. Когда я проверяю результаты с помощью python (IDLE), все выглядит нормально. Когда я использую клиент командной строки MySQL, вставка не произошла. Если я изменю настройки на _mysql вместо MySQLdb, все будет работать нормально. Я был бы признателен за любые разъяснения.

«Работает» до тех пор, пока не будет сброшен режим ОЖИДАНИЯ / виртуальная машина:

 import MySQLdb
db = MySQLdb.connect(user='root', passwd='*******',db='test')
cursor = db.cursor()
cursor.execute("""INSERT INTO test VALUES ('somevalue');""",)
  

Работает:

 import _mysql
db = _mysql.connect(user='root', passwd='*******',db='test')
db.query("INSERT INTO test VALUES ('somevalue');")
  

Информация о системе:
Intel x86
WinXP
Python 2.5
MySQL 5.1.41
MySQL-Python 1.2.2

Ответ №1:

Вы можете использовать db.commit() для отправки данных или задать db.autocommit() after _mysql.connect(...) для автоматической фиксации запросов.

Комментарии:

1. У меня это сработало, спасибо за публикацию (почти 3 года назад)!

2. Это именно то, что я искал. Как ни странно, в большинстве руководств это не упоминается, что меня удивляет.

Ответ №2:

Я думаю, что они используют разные настройки автоматической фиксации. Используйте commit() после вставки данных.