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

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

DDD
풀어 주다: 2024-11-27 10:32:10
원래의
370명이 탐색했습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿