我的MySQL连接在一个循环周期后关闭。我可能在使用mysql对象时做了一些错误的事情。它输出一个周期,然后退出并返回错误。
这是我的代码:
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
fetch_ids = cnx.cursor()
query = ("SELECT * FROM items WHERE has_recipe = 1")
fetch_ids.execute(query)
count = 0
for (data) in fetch_ids:
fetch_details = cnx.cursor()
query = ("SELECT * FROM recipes WHERE recipe_id = " + str(data[1]))
fetch_details.execute(query)我得到的错误是:
Traceback (most recent call last):
File "trade.py", line 47, in <module>
fetch_details = cnx.cursor()
File "/Users/allendar/Desktop/mysql/connector/connection.py", line 1076, in cursor
raise errors.OperationalError("MySQL Connection not available.")
mysql.connector.errors.OperationalError: MySQL Connection not available.发布于 2013-01-28 23:30:34
MySQL不支持真正的游标,该库仅模拟它们。因此,每个连接一次只能运行一个游标。
在循环中,您将打开第二个游标,而这不是MySQL可以处理的。在将游标用于新查询之前,读取第一个查询中的所有行。
发布于 2013-01-28 23:21:15
您调用cnx.cursor()的次数太多了。只需在第一次调用游标时,就像您正在做的那样,并在以下查询中重用相同的对象。在处理完db之后,记得在某个地方放置一个cnx.close()来清理会话。
https://stackoverflow.com/questions/14564359
复制相似问题