如何使用Python和MySQL正确组织数据库调用?

如何使用Python和MySQL正确组织数据库调用?,python,mysql,Python,Mysql,我有这样一个代码: 将mysql.connector导入为mysql 从generate_记录导入generateRecords DeviceQuery=“调用iot.sp\u传感器\u概览() 尝试: db=mysql.connect( user=“username”, password=“password”, host=“主机名”, 数据库=“物联网” ) cursor=db.cursor(dictionary=True,buffered=True) cursor.execute(Devic

我有这样一个代码:

将mysql.connector导入为mysql
从generate_记录导入generateRecords
DeviceQuery=“调用iot.sp\u传感器\u概览()
尝试:
db=mysql.connect(
user=“username”,
password=“password”,
host=“主机名”,
数据库=“物联网”
)
cursor=db.cursor(dictionary=True,buffered=True)
cursor.execute(DeviceQuery)
对于光标中的传感器:
发电机记录(传感器,db)
cursor.close()
除了mysql.connector.Error作为错误外:
打印(“错误:”)
打印(错误)
其他:
db.close()
generateRecords
函数的目的显然是生成记录并对不同的表运行INSERT查询

似乎我做错了什么,因为无论我做什么尝试,我都会在这里遇到不同的错误,比如
mysql.connector.errors.OperationalError:mysql连接不可用。

(upd)我还尝试按照建议更改代码(参见下面的示例),但没有成功-我仍然收到
MySQL连接不可用。
错误

rows=cursor.fetchall()
cursor.close()
对于成排的传感器:
cursor2=db.cursor()
发电机记录(传感器、游标2)
那么,我应该在
generatereRecords
函数中创建一个新连接,还是在其中传递一些不同的内容,或者在这里使用某种不同的方法


谢谢大家!

最后我发现了问题所在。我使用查询调用存储过程。使用
cursor.callproc(“sp\u sensors\u overview”)
解决了我的问题,现在我可以创建下一个没有错误的光标。

这些错误是从哪里来的?
generateRecords
是否创建自己的光标?记住,你在这里的一个查询中。你可以考虑把所有的记录取到一个列表中,然后关闭光标,然后运行你的代码>泛型EngordOrs<代码>循环。@ TimeRoBots是的,<代码>通用Actudios<代码>创建一个游标,此时它也会以MySQL连接错误失败。