Python raise err.PROGRAMINGERROR(“先执行()”)pymysql.err.PROGRAMINGERROR:execute()先执行
我有一个返回游标的连接函数,我正在使用pymysql连接我的数据库,我还有另一个文件使用连接函数执行sql语句,但当我获取行时,它返回一个错误Python raise err.PROGRAMINGERROR(“先执行()”)pymysql.err.PROGRAMINGERROR:execute()先执行,python,python-3.x,Python,Python 3.x,我有一个返回游标的连接函数,我正在使用pymysql连接我的数据库,我还有另一个文件使用连接函数执行sql语句,但当我获取行时,它返回一个错误raise err.ProgrammingError(“execute()first”) 下面是从我的数据库配置文件扩展的连接函数 def kasaa(): try: conn = mysql.connect() cursor = conn.cursor(pymysql.cursors.DictCursor)
raise err.ProgrammingError(“execute()first”)
下面是从我的数据库配置文件扩展的连接函数
def kasaa():
try:
conn = mysql.connect()
cursor = conn.cursor(pymysql.cursors.DictCursor)
return cursor
except Exception as e:
print(e)
但是当我在employee类中调用kasaa()
时,它首先引发了execute()
错误
def get_multiple_info(self,employees_ids):
"""Get info of multiple Employees in database"""
try:
for employee_id in employees_ids:
kasaa().execute(
"SELECT * FROM ospos_employees WHERE ospos_employees.deleted = 0 AND ospos_employees.person_id = %s ",
employee_id
)
row = kasaa().fetchone()
return row()
except Exception as e:
print(e)
finally:
kasaa().close()
kasaa()
中的代码执行两次,因此实际上调用fetchone()
时不使用execute()
。获取光标
并使用它调用其他函数
def get_multiple_info(self, employees_ids):
"""Get info of multiple Employees in database"""
cursor = None
try:
for employee_id in employees_ids:
cursor = kasaa()
cursor.execute(
"SELECT * FROM ospos_employees WHERE ospos_employees.deleted = 0 AND ospos_employees.person_id = %s ",
employee_id
)
row = cursor.fetchone()
return row()
except Exception as e:
print(e)
finally:
cursor.close()
我很感激这位病人。我不知道kasaa()函数在哪里执行了两次我使用了您建议的解决方案,但我仍然得到相同的结果(即引发的错误)@AlkhadhilIssa您在
中再次调用kasaa()
。编辑了我的答案。哦哦哦,我知道我做错了什么。我感谢你的帮助