Python mySQL 更新,工作正常但未更新表格
我有一个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里执行,它就能正常工作。
3 个回答
13
这两个答案都是对的。不过,你也可以这样做:
dbb = MySQLdb.connect(host="localhost",
user="user",
passwd="pass",
db="database",
autocommit=True)
加上 autocommit=True
28
正如@Lazykiddy所说,在你把更改加载到mysql之后,你需要提交这些更改。
你也可以在初始化MySQL连接后,使用这种方法来开启自动提交设置:
dbb.autocommit(True)
这样的话,在你执行代码时所做的更改会自动提交。
99
使用
dbb.commit()
之后,
curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
来提交你已经“加载”的所有更改到mysql服务器上。