Sudahkah Anda mencoba memilih salah satu kumpulan hasil?
for result in cursor.stored_results():
people = result.fetchall()
Bisa jadi itu mengalokasikan untuk beberapa hasil meskipun Anda hanya memiliki satu SELECT
stmt. Saya tahu dalam prosedur tersimpan MySQLi PHP melakukan ini untuk memungkinkan pengembalian variabel INOUT dan OUT (yang sekali lagi, Anda tidak memilikinya, tapi mungkin tetap mengalokasikan).
Kode lengkap yang saya gunakan (yang berfungsi) adalah:
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()