python – 为什么“c.execute(…)”打破循环?

python – 为什么“c.execute(…)”打破循环?,第1张

概述我正在尝试更改sqlite3文件中的一些数据,而我在 python和google-fu中不存在的知识让我最终得到了这段代码: #!/usr/bin/python# Filename : hello.pyfrom sqlite3 import *conn = connect('database')c = conn.cursor()c.execute('select * from t 我正在尝试更改sqlite3文件中的一些数据,而我在 python和Google-fu中不存在的知识让我最终得到了这段代码:

#!/usr/bin/python# filename : hello.pyfrom 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)”时,它会循环遍历表中的前两行,就像它应该的那样.我如何使其工作?

解决方法 这样做是因为只要你执行c.execute(newdata),光标就不再指向原始结果集了.我会这样做:

#!/usr/bin/python# filename : hello.pyfrom sqlite3 import *conn = connect('database')c = conn.cursor()c.execute('select * from table limit 2')result = c.fetchall()for row in result:    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()conn.close()
总结

以上是内存溢出为你收集整理的python – 为什么“c.execute(…)”打破循环?全部内容,希望文章能够帮你解决python – 为什么“c.execute(…)”打破循环?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存