Heim >Datenbank >MySQL-Tutorial >Wie rufe ich Ergebnismengen aus gespeicherten MySQL-Prozeduren in Python ab?
Abrufen von Ergebnissen aus gespeicherten MySQL-Prozeduren mit Python
Obwohl ein Aufruf einer gespeicherten MySQL-Prozedur über Python erfolgreich war, tritt beim Versuch ein Fehler auf um die Ergebnisse mit Cursor.fetchall() abzurufen. Diese Fehlermeldung „mysql.connector.errors.InterfaceError: Kein Ergebnissatz zum Abrufen“ weist darauf hin, dass der erwartete Ergebnissatz nicht verfügbar ist.
Um dieses Problem zu beheben, sollten Sie die Verwendung von Cursor.stored_results() in Betracht ziehen. Methode statt. Diese Methode ruft alle verfügbaren Ergebnismengen aus der gespeicherten Prozedur ab. In diesem Fall sollte es nur einen Ergebnissatz geben, der einer Variablen zugewiesen und anschließend iteriert werden kann, um die gewünschten Daten zu erhalten.
Hier ist ein modifizierter Codeausschnitt, der die Verwendung von Cursor.stored_results( ):
import mysql.connector cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb') 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()
Dieser Ansatz ruft erfolgreich die Ergebnisse der gespeicherten Prozedur ab und iteriert darüber, um die Details der Person anzuzeigen. Beachten Sie, dass die Argumente cmd_query_iter und multi nicht erforderlich sind, da wir nur eine einzige Abfrage ausführen.
Das obige ist der detaillierte Inhalt vonWie rufe ich Ergebnismengen aus gespeicherten MySQL-Prozeduren in Python ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!