LINUX.ORG.RU

python MySQLdb изменения не сохраняются

 ,


0

1

Здравствуйте, я столкнулся с такой проблемой: все изменения базы данных которые я выполняю в скрипте, после завершения его откатываются назад. Например

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb as MDB

connect = MDB.connect('localhost','root','root','mytestbase')

cur = connect.cursor()
cur.execute("INSERT INTO pets (name,atype) VALUES ('rulf','cat')")
cur.close()

cur = connect.cursor()
cur.execute("SELECT * from pets")
for i in cur.fetchall():
	print i
cur.close()

connect.close()
При выполнении этого кода выводится таблица, с записью (rulf,cat), но после завершения скрипта её там нет.

★★★★★

Ответ на: комментарий от varchar

Спрошу-ка в теме подходящей - какой интерфейс к мускулу для 3-го питона есть?

http://pythonhosted.org/oursql/

Причем он для второго тоже работает. Авторы говорят, что оно лучше mysqldb, там по ссылке есть определённые аргументы.

risenshnobel ★★★
()
Ответ на: комментарий от rikardoac

понятия не имею, нарвался на mysqldb-1.2.3. два последовательных селекта отдавали одинаковые данные, причем после первого я делал ручной инсерт. пока не добавил commit() второй селект не отдавал обновленный результат.

x0r ★★★★★
()
Ответ на: комментарий от rikardoac

конструкцию mysql commit или вызов метода commit?

ммм, я думаю метод был бы более правильным. Или же выставить autocommit, но мне кажется лучше явно завершать транзакции. В коде джанго я видел такой подход: если метод не выкидывает успешно то после его отработки делается коммит. Иначе rollback.

true_admin ★★★★★
()
Ответ на: комментарий от varchar

Пару недель тому назад установка завершалась ошибкой.

Да, действительно, с python 3.3 она ставиться так просто не хочет. Но мы не ищем лёгких путей.

Скачиваешь версию для python 3 https://launchpad.net/oursql/py3k/py3k-0.9.3/ download/oursql-0.9.3.zip

Далее ставишь cython, а затем удаляешь в исходниках библиотеки oursqlx/oursql.c. После этого можно ставить (через setup.py или pip из локальной директории). В данном случае cython пересоздаст сишный исходник, и библиотека должна заработать.

Идея не моя, спасибо мэйнтейнерам пакета в арче (в AUR).

risenshnobel ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.