>데이터 베이스 >MySQL 튜토리얼 >`fetchone()`으로 인해 Python의 MySQL 커넥터에서 \'읽지 않은 결과가 발견됨\'이 발생하는 이유는 무엇이며 버퍼링된 커서가 이 문제를 어떻게 해결할 수 있습니까?

`fetchone()`으로 인해 Python의 MySQL 커넥터에서 \'읽지 않은 결과가 발견됨\'이 발생하는 이유는 무엇이며 버퍼링된 커서가 이 문제를 어떻게 해결할 수 있습니까?

DDD
DDD원래의
2024-11-27 10:32:10339검색

Why Does `fetchone()` Cause

Python MySQL 커넥터: fetchone을 사용할 때 읽지 않은 결과가 발견되었습니다.

이 질문은 fetchone을 사용하여 MySQL 데이터베이스에 JSON 데이터를 삽입하는 동안 발생하는 문제와 관련이 있습니다. Python MySQL 커넥터. 더 높은 수준의 세부 정보를 삽입하고 출발지 및 목적지 좌표와 time_stamp를 기준으로 낮은 수준의 정보를 상위 정보와 연결하려고 시도하면 "읽지 않은 결과가 발견되었습니다."라는 오류와 함께 코드가 실패합니다.

검색에 사용되는 쿼리 각 좌표 세트와 타임스탬프의 고유 구간 번호는 다음과 같습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.