我試圖改變一個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