我有一个需要更新mysql数据库的python脚本,到目前为止:
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
的正确行数。如果我将RadioID
更改为表中不存在的另一个数字,则会显示{{ 1}}。但是,数据库实际上并未更新。 Row(s) were updated :0
字段保持不变。如果我将SQL语句复制并传递给PHPMyAdmin,它可以正常工作。
答案 0 :(得分:80)
使用
dbb.commit()
之后
curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
将您“加载”的所有更改提交到mysql服务器
答案 1 :(得分:24)
正如@Lazykiddy指出的那样,你必须在将它们加载到mysql后提交你的更改。
您也可以使用此方法在MySQL连接初始化之后启用自动提交设置:
dbb.autocommit(True)
然后,它将自动提交您在代码执行期间所做的更改。
答案 2 :(得分:3)
这两个答案是正确的。但是,您也可以这样做:
dbb = MySQLdb.connect(host="localhost",
user="user",
passwd="pass",
db="database",
autocommit=True)
添加 autocommit = True