Python的MySQL的更新,工作却没有更新表(Python mySQL Update, Work

2019-07-21 03:59发布

我有一个python脚本,需要更新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  

脚本打印Row(s) were updated :有正确的号码其中有一个排的RadioID 11.如果我改变RadioID到另一个号码不存在的表,它会说Row(s) were updated :0 。 但是数据库不会实际更新。 该CurrentState场只是保持不变。 如果我复制和过去的SQL语句中的phpMyAdmin它工作正常。

Answer 1:

使用

dbb.commit()

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

提交你“加载”到MySQL服务器的所有更改



Answer 2:

由于@Lazykiddy指出的那样,你必须将它们加载到MySQL后,提交更改。

你也可以使用这种方法来启用自动提交设置,只是MySQL连接初始化后:

dbb.autocommit(True)

然后,它会自动提交您的代码执行过程中所做的更改。



Answer 3:

这两个答案都是正确的。 但是,你也可以这样做:

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

添加自动提交=真



文章来源: Python mySQL Update, Working but not updating table