Heim > Datenbank > MySQL-Tutorial > Warum verursacht „fetchone()' „Ungelesenes Ergebnis gefunden' im MySQL-Connector von Python und wie können gepufferte Cursor das Problem beheben?

Warum verursacht „fetchone()' „Ungelesenes Ergebnis gefunden' im MySQL-Connector von Python und wie können gepufferte Cursor das Problem beheben?

DDD
Freigeben: 2024-11-27 10:32:10
Original
369 Leute haben es durchsucht

Why Does `fetchone()` Cause

Python MySQL Connector: Ungelesenes Ergebnis bei Verwendung von fetchone gefunden

Diese Frage bezieht sich auf ein Problem, das beim Einfügen von JSON-Daten in eine MySQL-Datenbank mit aufgetreten ist der Python-MySQL-Connector. Beim Einfügen von Details auf höherer Ebene und beim Versuch, Informationen auf niedrigerer Ebene basierend auf Ursprungs- und Zielkoordinaten und Zeitstempel mit dem übergeordneten Element zu verknüpfen, schlug der Code mit der Fehlermeldung „Ungelesenes Ergebnis gefunden“ fehl.

Die für die Suche verwendete Abfrage denn die eindeutige Streckennummer für jeden Satz von Koordinaten und Zeitstempel lautet:

query = ('SELECT leg_no FROM leg_data WHERE travel_mode = %s AND Orig_lat = %s AND Orig_lng = %s AND Dest_lat = %s AND Dest_lng = %s AND time_stamp = %s')
Nach dem Login kopieren

Zunächst wurde versucht, alle ungelesenen Daten zu verwerfen Ergebnisse:

cursor.execute(query,(leg_travel_mode, leg_Orig_lat, leg_Orig_lng, leg_Dest_lat, leg_Dest_lng))
leg_no = cursor.fetchone()[0]
try:
    cursor.fetchall()
except mysql.connector.errors.InterfaceError as ie:
    if ie.msg == 'No result set to fetch from.':
        pass
    else:
        raise
cursor.execute(query,(leg_travel_mode, leg_Orig_lat, leg_Orig_lng, leg_Dest_lat, leg_Dest_lng, time_stamp))
Nach dem Login kopieren

Der Fehler blieb jedoch weiterhin bestehen.

Bei weiteren Untersuchungen wurde festgestellt, dass die Lösung in der Angabe eines gepufferten Cursors liegt. Durch Hinzufügen von buffered=True zur Cursor-Initialisierungszeile wurde das Problem behoben:

cursor = cnx.cursor(buffered=True)
Nach dem Login kopieren

Dadurch wird sichergestellt, dass alle Zeilen im Hintergrund abgerufen werden, wodurch verhindert wird, dass der Fehler auftritt.

Das obige ist der detaillierte Inhalt vonWarum verursacht „fetchone()' „Ungelesenes Ergebnis gefunden' im MySQL-Connector von Python und wie können gepufferte Cursor das Problem beheben?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage