我有一个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,那么它可以正常工作。
正如@Lazykiddy所指出的,您必须在将更改加载到mysql之后提交它们。
您还可以在MySQL连接初始化之后使用此方法启用自动提交设置:
然后,它将自动提交您在代码执行期间所做的更改。
使用
之后
curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
提交“加载”到mysql服务器的所有更改
这两个答案是正确的。但是,您也可以这样做:
添加autocommit=True
相关问题 更多 >
编程相关推荐