cursor.callproc返回空结果

时间:2017-03-23 14:41:59

标签: python sqlalchemy

我有这样的方法:

from app.database import db

def get_channels_list(user_token):
    data = jwt.decode(user_token, app.config.get('JWT_SECRET'))
    connection = db.engine.raw_connection()
    try:
        cursor = connection.cursor()
        cursor.callproc("permission_list_user", [958539, 'web'])
        results = list(cursor.fetchall())
        cursor.close()
        connection.commit()
    finally:
        connection.close()
    print(len(results))
    return success(results)

当我运行它时,我得到len(results) == 0但是当我通过mysql控制台运行相同的程序时:

CALL permission_list_user(958539, 'web');

我得到它应该返回的结果。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我不喜欢这种方式,但是我解决了在调用过程后运行SELECT查询的问题:

query ='call loginAPI("{0}","{1}",@logged, @hashAPI)'.format(user,password)
 select = 'select @logged, @hashAPI'

  cursor.execute(query)
  cursor.execute(select)
  rv = cursor.fetchall()

寻找更漂亮的解决方案。