#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() после вставки данных.