Heim >Datenbank >MySQL-Tutorial >Wie rufe ich Ergebnismengen aus gespeicherten MySQL-Prozeduren in Python ab?

Wie rufe ich Ergebnismengen aus gespeicherten MySQL-Prozeduren in Python ab?

DDD
DDDOriginal
2024-12-04 05:22:15842Durchsuche

How to Retrieve Result Sets from MySQL Stored Procedures in Python?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn