提高错误编程错误(“先执行()”)pymysql.err.ProgrammingError程序错误:execute()第一个

2024-09-29 23:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个返回cursor的连接函数,我正在使用pymysql连接我的数据库,还有另一个文件使用连接函数执行sql语句,但是当我获取行时它返回一个错误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()

Tags: 函数id数据库executereturndef错误employee
1条回答
网友
1楼 · 发布于 2024-09-29 23:23:19

kasaa()中的代码执行了两次,因此fetchone()实际上是在没有execute()的情况下调用的。获取cursor并使用它调用其他函数

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()

相关问题 更多 >

    热门问题