首頁 > 資料庫 > mysql教程 > 為什麼 `fetchone()` 在 Python 的 MySQL 連接器中導致'發現未讀結果”,緩衝遊標如何修復它?

為什麼 `fetchone()` 在 Python 的 MySQL 連接器中導致'發現未讀結果”,緩衝遊標如何修復它?

DDD
發布: 2024-11-27 10:32:10
原創
370 人瀏覽過

Why Does `fetchone()` Cause

Python MySQL Connector: Unread Result Found When using fetchone

此問題涉及使用以下命令將此JSON 資料插入SQLSQL 資料庫時遇到的My問題Python MySQL 連接器。插入更高層級的詳細資訊並嘗試根據出發地和目的地座標以及時間戳將較低層級的資訊與父級資訊相關聯時,程式碼將失敗並顯示錯誤「發現未讀結果」。

用於搜尋的查詢對於每組座標和時間戳的唯一航段編號為:

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')
登入後複製

最初,嘗試丟棄任何未讀的結果:

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))
登入後複製

但是,錯誤依然存在。

進一步調查,發現解決方案在於指定緩衝遊標。將 buffered=True 新增至遊標初始化行解決了該問題:

cursor = cnx.cursor(buffered=True)
登入後複製

這可確保在幕後提取所有行,從而防止錯誤。

以上是為什麼 `fetchone()` 在 Python 的 MySQL 連接器中導致'發現未讀結果”,緩衝遊標如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板