Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat Penyambung MySQL \'Keputusan Belum Dibaca\' dalam Python?

Bagaimana untuk Menyelesaikan Ralat Penyambung MySQL \'Keputusan Belum Dibaca\' dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-11-29 04:32:09682semak imbas

How to Resolve the MySQL Connector

Ralat Penyambung MySQL: "Hasil Belum Dibaca Ditemui" dalam Python

Apabila bekerja dengan pangkalan data MySQL menggunakan penyambung Python, ralat yang menyatakan "Hasil belum dibaca dijumpai ." Isu ini biasanya dikaitkan dengan kursor tidak buffer dan boleh berlaku apabila melaksanakan berbilang pertanyaan dalam satu sambungan.

Dalam kod yang disediakan, ralat mungkin berlaku disebabkan oleh baris:

leg_no = cursor.fetchone()[0]

Baris ini hanya mengambil satu baris daripada hasil pertanyaan, meninggalkan hasil yang selebihnya tidak diproses. Pertanyaan seterusnya menggunakan kursor yang sama akan gagal dengan ralat "Hasil belum dibaca ditemui".

Penyelesaian:

Untuk menyelesaikan isu ini, tetapkan atribut penimbal kursor kepada Benar apabila menciptanya. Ini akan memaksa penyambung untuk menimbal keseluruhan set hasil sebelum melaksanakan sebarang pertanyaan后续.

cursor = cnx.cursor(buffered=True)

Selain itu, disyorkan untuk secara eksplisit mengambil semua hasil yang tinggal daripada kursor menggunakan fetchall() sebelum melaksanakan sebarang pertanyaan berikutnya. Ini boleh dilakukan dengan kod berikut:

try:
    cursor.fetchall()
except mysql.connector.errors.InterfaceError as ie:
    if ie.msg == 'No result set to fetch from.':
        pass
    else:
        raise

Dengan menetapkan kursor kepada penimbal dan secara eksplisit mengambil semua hasil, ralat "Hasil belum dibaca ditemui" boleh dielakkan.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Penyambung MySQL \'Keputusan Belum Dibaca\' dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn