Heim > Datenbank > MySQL-Tutorial > Wie rufe ich Ergebnisse aus einer gespeicherten MySQL-Prozedur mit Pythons „cursor.stored_results()' ab?

Wie rufe ich Ergebnisse aus einer gespeicherten MySQL-Prozedur mit Pythons „cursor.stored_results()' ab?

Barbara Streisand
Freigeben: 2024-12-01 12:38:15
Original
269 Leute haben es durchsucht

How to Retrieve Results from a MySQL Stored Procedure using Python's `cursor.stored_results()`?

Abrufen von Ergebnissen aus einer gespeicherten Prozedur mit dem Python-Cursor

Dieser Artikel befasst sich mit dem Problem des Abrufens von Ergebnissen aus einem MySQL-Aufruf einer gespeicherten Prozedur mit Python Cursor. Trotz einer erfolgreichen Verbindung zur Datenbank und der Verwendung von „cursor.execute()“ bei einer normalen SQL-Abfrage geben Versuche, Ergebnisse aus einem Aufruf einer gespeicherten Prozedur mithilfe von „cursor.fetchall()“ oder „cursor.fetchone()“ abzurufen, einen Fehler zurück: „mysql. „connector.errors.InterfaceError: Kein Ergebnissatz zum Abrufen von.“

Lösung

Die Lösung liegt in Abrufen der Ergebnismenge mit Cursor.stored_results(). Diese Methode durchläuft alle verfügbaren Ergebnismengen und ermöglicht es dem Programmierer, mit der gewünschten Ergebnismenge zu arbeiten.

Der folgende Code demonstriert den richtigen Ansatz:

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()
Nach dem Login kopieren

Dieser Code ruft die Ergebnisse erfolgreich aus dem Speicher ab Verfahren ohne Fehler.

Überlegung

Es ist erwähnenswert dass der MySQL-Python-Connector mehrere Ergebnismengen zuordnen kann, auch wenn nicht mehrere SELECT-Anweisungen vorhanden sind. Diese Zuordnung kann aufgrund der Einbeziehung von INOUT- und OUT-Variablen in die gespeicherte Prozedur erfolgen, die Sie nicht haben. Nichtsdestotrotz handhabt die Verwendung von Cursor.stored_results() diese potenzielle Zuordnung effektiv und ermöglicht einen erfolgreichen Ergebnisabruf.

Das obige ist der detaillierte Inhalt vonWie rufe ich Ergebnisse aus einer gespeicherten MySQL-Prozedur mit Pythons „cursor.stored_results()' ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage