Python 2.7 Python中的MySQL;第一个循环后,连接在for循环中关闭

Python 2.7 Python中的MySQL;第一个循环后,连接在for循环中关闭,python-2.7,database-connection,mysql-python,Python 2.7,Database Connection,Mysql Python,我的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)

我的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.
回溯(最近一次呼叫最后一次):
文件“trade.py”,第47行,在
fetch_details=cnx.cursor()
光标中的文件“/Users/allendar/Desktop/mysql/connector/connection.py”第1076行
引发错误。操作错误(“MySQL连接不可用”)
mysql.connector.errors.OperationalError:mysql连接不可用。
您调用cnx.cursor()的次数太多。第一次调用游标,就像您正在做的一样,并将同一个对象重新用于以下查询。
处理完数据库后,记得在某个地方放一个cnx.close()来清理会话。

MySQL不支持真正的游标,库只模拟它们。因此,每个连接一次只能运行一个游标

在循环中,您正在打开第二个游标,而MySQL无法处理这一点。在将光标用于新查询之前,读取第一个查询中的所有行