О MySQLdb conn.autocommit (True)

Я установил python 2.7 64bit, MySQL-python-1.2.3.win-amd64-py2.7.exe.

Я использую следующий код для вставки данных:

class postcon: def POST(self): conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charset="utf8") cursor = conn.cursor() n = cursor.execute("insert into d_message (mid,title,content,image) values(2,'xx','ccc','fff')") cursor.close() conn.close() if n: raise web.seeother('/') 

Это приводит к печати n как 1, но в mysql данные клиента не видны.

google говорит, что я должен добавить conn.autocommit(True) .

но я не знаю, почему MySQLdb отключает его;

  • TypeError: объект «long» не является итерируемым
  • «If» и «elif» по сравнению с простой «if» цепью
  • Переопределить ifInterruptJavaScript в QWebPage с помощью PySide
  • Как найти индекс значения в массиве 2d в Python?
  • Установка PIP и путь Python
  • RuntimeError: основной поток не находится в основном цикле
  • Как форматировать строку, используя словарь в python-3.x?
  • Как сделать форматирование строк с помощью unicode emdash?
  • 2 Solutions collect form web for “О MySQLdb conn.autocommit (True)”

    Я не знаю, есть ли конкретная причина использовать автосообщение с GAE (если вы используете его). В противном случае вы можете просто вручную зафиксировать.

     class postcon: def POST(self): conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charset="utf8") cursor = conn.cursor() n = cursor.execute("insert into d_message (mid,title,content,image) values(2,'xx','ccc','fff')") conn.commit() # This right here cursor.close() conn.close() if n: raise web.seeother('/') - class postcon: def POST(self): conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charset="utf8") cursor = conn.cursor() n = cursor.execute("insert into d_message (mid,title,content,image) values(2,'xx','ccc','fff')") conn.commit() # This right here cursor.close() conn.close() if n: raise web.seeother('/') 

    Обратите внимание, что вы, вероятно, должны проверить, успешно ли вставлена ​​вставка, а если нет, откат фиксации.

    по умолчанию MySQLdb autocommit имеет значение false,

    Вы можете установить autocommit в True в вашем соединении MySQLdb, как это,

     conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charse="utf8") conn.autocommit = True cursor = conn.cursor() - conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charse="utf8") conn.autocommit = True cursor = conn.cursor() 
    Python - лучший язык программирования в мире.