我试图改变一个sqlite3的文件中的一些数据,我我不存在的知识,Python和谷歌福让我结束了这段代码:为什么“c.execute(...)”会打破循环?
#!/usr/bin/python
# Filename : hello.py
from sqlite3 import *
conn = connect('database')
c = conn.cursor()
c.execute('select * from table limit 2')
for row in c:
newname = row[1]
newname = newname[:-3]+"hello"
newdata = "UPDATE table SET name = '" + newname + "', originalPath = '' WHERE id = '" + str(row[0]) + "'"
print row
c.execute(newdata)
conn.commit()
c.close()
它的工作原理就像一个魅力的第一行但由于某种原因它只运行一次循环(只有表中的第一行被修改)。当我删除“c.execute(newdata)”时,它循环遍历表中的前两行,因为它应该。我如何使它工作?
虽然你不需要2个游标吗?只需保存第一个执行调用的结果并迭代即可。 – 2010-12-17 15:38:30
@Matt:我没有注意到那里的'LIMIT 2'。你是对的。 – sje397 2010-12-18 01:08:22