Bạn đã thử chọn một trong các tập kết quả chưa?
for result in cursor.stored_results():
people = result.fetchall()
Có thể là nó đang phân bổ cho nhiều tập kết quả mặc dù bạn chỉ có một SELECT
stmt. Tôi biết trong các thủ tục được lưu trữ MySQLi của PHP thực hiện điều này để cho phép trả về biến INOUT và OUT (một lần nữa, bạn không có, nhưng có thể nó đang phân bổ bất cứ lúc nào).
Mã hoàn chỉnh mà tôi đang sử dụng (đang hoạt động) là:
import mysql.connector
cnx = mysql.connector.connect(user='me',password='pw',host='localhost',database='mydb')
cnx._open_connection()
cursor = cnx.cursor()
cursor.callproc("getperson",[1])
for result in cursor.stored_results():
people=result.fetchall()
for person in people:
print person
cnx.close()