Подтвердить что ты не робот

Обновление Python mySQL, работая, но не обновляя таблицу

У меня есть python script, который должен обновить базу данных mysql, я до сих пор:

dbb = MySQLdb.connect(host="localhost", 
       user="user", 
       passwd="pass", 
       db="database") 
try:
   curb = dbb.cursor()
   curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
   print "Row(s) were updated :" +  str(curb.rowcount)
   curb.close()
except MySQLdb.Error, e:
   print "query failed<br/>"
   print e  

script печатает Row(s) were updated : с правильным количеством строк, которые имеют RadioID of 11. Если я изменил RadioID на другое число, не указанное в таблице, он скажет Row(s) were updated :0. Однако база данных фактически не обновляется. Поле CurrentState остается неизменным. Если я скопирую и передаю инструкцию SQL в PHPMyAdmin, она отлично работает.

4b9b3361

Ответ 1

использовать

dbb.commit()

после

curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")

выполнить все изменения, которые вы загрузили, в сервер mysql

Ответ 2

Как указала @Lazykiddy, вы должны зафиксировать свои изменения после загрузки их в mysql.

Вы также можете использовать этот подход, чтобы включить настройку автоматической фиксации сразу после инициализации соединения MySQL:

dbb.autocommit(True)

Затем он автоматически зафиксирует изменения, внесенные вами во время выполнения кода.

Ответ 3

два ответа верны. Однако вы также можете это сделать:

dbb = MySQLdb.connect(host="localhost", 
   user="user", 
   passwd="pass", 
   db="database",
   autocommit=True) 

добавить autocommit = True