【发布时间】:2014-09-27 07:16:28
【问题描述】:
在提问之前,我应该告诉你我是个菜鸟。
我的问题是我有 2 个游标(在不同的 sql 连接上),第一个游标从 sql 数据库中获取结果,而第二个游标对结果中的行进行更改。问题是我想在第二个游标进行更改后刷新第一个游标结果的内容。
我的游标在缓冲的 sql 连接上工作。
我卡住的部分代码(我删除了一些不必要的行):
// more loops here before the sample -
cursor2.execute(query2)
for result in cursor2 :
if (str(result[3]) == "None") :
name = result[1]
query3 = ("UPDATE accounts SET entry1 = %s WHERE name = %s")
cursor3.execute(query3,(entry,name))
sql3.commit()
break
elif (str(result[4]) == "None") :
name = result[1]
query3 = ("UPDATE accounts SET entry2 = %s WHERE name = %s")
cursor3.execute(query3,(entry,name))
sql3.commit()
break
此示例似乎没有帮助,但是; 结果[3] 给了我列“entry1”,结果[4] =“entry2”。
Cursor3 根据情况改变 entry1 或 entry2 的内容。但是在 cursor3 commited 之后,当循环返回到 "if (str(result[3]) == "None") :" 部分时,它仍然看到 result[3] 为 None。当我检查 MysqlDatabase 时,“entry1”似乎已成功更新。我想我需要以某种方式刷新 cursor2 中的结果,但我不知道如何。
我试图将 buffered 设置为 false,但出现无法摆脱的“未读结果”错误。 (就像我说我是菜鸟)。有什么建议吗?
【问题讨论】:
-
您使用什么模块连接到数据库?例如您使用的是
MySQLdb还是...? -
就像我在标题中所说,python 的 mysql 连接器 (dev.mysql.com/downloads/connector/python)
标签: python mysql cursor refresh connector