Python mySQL更新,工作但不更新选项卡

2024-06-01 01:10:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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中并将其传递给PHPMyAdmin,那么它可以正常工作。


Tags: 脚本数据库connectmysqlrowprintmysqldbupdated
3条回答

正如@Lazykiddy所指出的,您必须在将更改加载到mysql之后提交它们。

您还可以在MySQL连接初始化之后使用此方法启用自动提交设置:

dbb.autocommit(True)

然后,它将自动提交您在代码执行期间所做的更改。

使用

dbb.commit()

之后

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

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

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

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

添加autocommit=True

相关问题 更多 >