Heim > Datenbank > MySQL-Tutorial > Warum gibt mein Python-MySQL-Connector bei der Verwendung von „fetchone()' den Fehler „Ungelesenes Ergebnis gefunden' aus?

Warum gibt mein Python-MySQL-Connector bei der Verwendung von „fetchone()' den Fehler „Ungelesenes Ergebnis gefunden' aus?

Patricia Arquette
Freigeben: 2024-11-29 19:30:16
Original
187 Leute haben es durchsucht

Why Does My Python MySQL Connector Throw an

Python MySQL Connector: „Ungelesenes Ergebnis gefunden“ bei Verwendung von Fetchone

Beim Einfügen geparster JSON-Daten in eine MySQL-Datenbank mithilfe des Python-Connectors Es tritt ein Fehler auf: „Ungelesenes Ergebnis gefunden.“ Dieser Fehler ist mit einem bestimmten Codeabschnitt verknüpft.

Im Codeausschnitt wird eine Reihe von Abfragen mit der Methode „cursor.execute“ ausgeführt, gefolgt von einem Aufruf von „cursor.fetchone“, um eine einzelne Zeile aus der abzurufen Ergebnismenge. Wenn dieser Code jedoch zu einem größeren Programm hinzugefügt wird, schlagen nachfolgende Abfragen mit demselben Cursor mit dem Fehler „Ungelesenes Ergebnis gefunden“ fehl.

Der Fehler deutet darauf hin, dass es nicht verarbeitete Ergebnisse aus früheren Abfragen gibt. Um dieses Problem zu beheben, wird empfohlen, die Ergebnisse jeder Abfrage mithilfe der Methode „cursor.fetchall“ auszuschöpfen. Versuche, dies innerhalb eines Try-Except-Blocks zur Behandlung des mysql.connector.errors.InterfaceError zu tun, haben sich jedoch als erfolglos erwiesen.

Der spezifische Codeabschnitt, der den Fehler verursacht, ist wie folgt:

cursor.execute(query,(travel_mode, Orig_lat, Orig_lng, Dest_lat, Dest_lng, time_stamp))
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

Um das Problem zu beheben, ist es notwendig, den gepufferten Parameter beim Erstellen des Cursors auf True zu setzen. Dadurch wird sichergestellt, dass alle Ergebnisse einer Abfrage in einen Puffer abgerufen werden, bevor nachfolgende Abfragen ausgeführt werden.

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

Wenn der gepufferte Parameter auf True gesetzt ist, tritt der Fehler „Ungelesenes Ergebnis gefunden“ nicht mehr auf.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Python-MySQL-Connector bei der Verwendung von „fetchone()' den Fehler „Ungelesenes Ergebnis gefunden' aus?. 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