Rumah >pangkalan data >tutorial mysql >Mengapa Penyambung MySQL Python Saya Membuang Ralat \'Belum Dibaca Ditemui\' Apabila Menggunakan `fetchone()`?
Penyambung MySQL Python: "Keputusan Belum Dibaca Ditemui" Apabila Menggunakan Fetchone
Apabila memasukkan data JSON yang dihuraikan ke dalam pangkalan data MySQL menggunakan penyambung Python, ralat berlaku: "Hasil belum dibaca ditemui." Ralat ini dikaitkan dengan bahagian kod tertentu.
Dalam coretan kod, satu siri pertanyaan dilaksanakan menggunakan kaedah cursor.execute, diikuti dengan panggilan ke cursor.fetchone untuk mendapatkan satu baris daripada set keputusan. Walau bagaimanapun, apabila kod ini ditambahkan pada atur cara yang lebih besar, pertanyaan berikutnya menggunakan kursor yang sama gagal dengan ralat "Hasil belum dibaca ditemui".
Ralat menunjukkan bahawa terdapat hasil yang tidak dikendalikan daripada pertanyaan sebelumnya. Untuk menyelesaikan isu ini, adalah disyorkan untuk menghabiskan hasil daripada setiap pertanyaan menggunakan kaedah cursor.fetchall. Walau bagaimanapun, percubaan untuk melakukan ini dalam blok try-except untuk mengendalikan mysql.connector.errors.InterfaceError telah terbukti tidak berjaya.
Bahagian khusus kod yang menyebabkan ralat adalah seperti berikut:
cursor.execute(query,(travel_mode, Orig_lat, Orig_lng, Dest_lat, Dest_lng, time_stamp)) 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))
Untuk menyelesaikan isu ini, parameter penimbal perlu ditetapkan kepada Benar apabila mencipta kursor. Ini memastikan bahawa semua hasil daripada pertanyaan diambil ke dalam penimbal sebelum sebarang pertanyaan berikutnya dilaksanakan.
cursor = cnx.cursor(buffered=True)
Dengan parameter penimbal ditetapkan kepada Benar, ralat "Hasil belum dibaca ditemui" tidak lagi ditemui.
Atas ialah kandungan terperinci Mengapa Penyambung MySQL Python Saya Membuang Ralat \'Belum Dibaca Ditemui\' Apabila Menggunakan `fetchone()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!