Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat Penyambung MySQL \'Keputusan Belum Dibaca\' 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!