社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

引发err.ProgrammingError(“execute()first”)pymysql.err.ProgrammingError:execute()first

Alkhadhil Issa • 5 年前 • 2939 次点击  

我有一个返回游标的连接函数,使用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)

kasaa() 在employee类中,它引发了一个错误 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()
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53516
 
2939 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Guy
Reply   •   1 楼
Guy    5 年前

密码输入 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()