Abrufen von Ergebnissen aus gespeicherten Prozeduren mit dem Python-Cursor
In Python kann das Herstellen einer Verbindung zu einer MySQL-Datenbank und das Ausführen gespeicherter Prozeduren mithilfe von MySQL erreicht werden .Anschlussmodul. Allerdings kann es beim Abrufen von Ergebnissen aus gespeicherten Prozeduren zu Herausforderungen kommen.
Um dieses Problem zu lösen, muss der Cursor, der zum Aufrufen der gespeicherten Prozedur verwendet wird, explizit angewiesen werden, die Ergebnisse mithilfe der Methode „stored_results()“ abzurufen. Diese Methode gibt einen Iterator von Ergebnismengen zurück, der den Abruf mehrerer Ergebnismengen ermöglicht, wenn die gespeicherte Prozedur diese zurückgibt.
Im bereitgestellten Beispiel gibt die gespeicherte Prozedur getperson eine einzelne Ergebnismenge zurück. Der folgende Code zeigt, wie die Ergebnisse abgerufen werden:
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()
In diesem Code wird die gespeicherte Prozedur mit einem Parameter von 1 aufgerufen und die Methode „stored_results()“ wird verwendet, um den einzelnen Ergebnissatz abzurufen. Die Ergebnisse werden dann iteriert und gedruckt.
Diese Lösung überwindet die im bereitgestellten Code auftretenden Probleme, wie z. B. den Fehler „Kein Ergebnissatz zum Abrufen von“ und die unsachgemäße Behandlung mehrerer Ergebnissätze. Durch explizites Abrufen des Ergebnissatzes mit „stored_results()“ kann der Code wie erwartet auf die Ergebnisse des Aufrufs der gespeicherten Prozedur zugreifen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python Ergebnisse aus gespeicherten MySQL-Prozeduren abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!