Rumah > pangkalan data > tutorial mysql > Mengapakah `fetchone()` Menyebabkan \'Keputusan Belum Dibaca Ditemui\' dalam Penyambung MySQL Python, dan Bagaimana Kursor Penimbal Boleh Membetulkannya?

Mengapakah `fetchone()` Menyebabkan \'Keputusan Belum Dibaca Ditemui\' dalam Penyambung MySQL Python, dan Bagaimana Kursor Penimbal Boleh Membetulkannya?

DDD
Lepaskan: 2024-11-27 10:32:10
asal
398 orang telah melayarinya

Why Does `fetchone()` Cause

Python MySQL Connector: Keputusan Belum Dibaca Ditemui Semasa Menggunakan fetchone

Soalan ini berkaitan dengan isu yang dihadapi semasa memasukkan data JSON ke dalam pangkalan data MySQL menggunakan penyambung Python MySQL. Apabila memasukkan butiran peringkat lebih tinggi dan cuba mengaitkan maklumat peringkat rendah dengan induk berdasarkan koordinat asal dan destinasi serta cap masa, kod tersebut akan gagal dengan ralat "Hasil belum dibaca ditemui."

Pertanyaan yang digunakan untuk mencari untuk nombor kaki unik bagi setiap set koordinat dan cap_masa ialah:

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')
Salin selepas log masuk

Pada mulanya, percubaan telah dibuat untuk membuang mana-mana yang belum dibaca keputusan:

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))
Salin selepas log masuk

Walau bagaimanapun, ralat berterusan.

Setelah penyiasatan lanjut, didapati bahawa penyelesaiannya terletak pada menentukan kursor penimbal. Menambah buffered=Teguh pada baris permulaan kursor telah menyelesaikan isu:

cursor = cnx.cursor(buffered=True)
Salin selepas log masuk

Ini memastikan semua baris diambil di belakang tabir, menghalang ralat daripada berlaku.

Atas ialah kandungan terperinci Mengapakah `fetchone()` Menyebabkan \'Keputusan Belum Dibaca Ditemui\' dalam Penyambung MySQL Python, dan Bagaimana Kursor Penimbal Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan