Haben Sie versucht, eine der Ergebnismengen auszuwählen?
for result in cursor.stored_results():
people = result.fetchall()
Es könnte sein, dass es für mehrere Resultsets zuweist, obwohl Sie nur ein SELECT
haben stmt. Ich weiß, dass in den gespeicherten MySQLi-Prozeduren von PHP dies geschieht, um INOUT- und OUT-Variablenrückgaben zu ermöglichen (von denen Sie wiederum keine haben, aber vielleicht werden sie trotzdem zugewiesen).
Der vollständige Code, den ich verwende (der funktioniert), ist:
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()