Mengambil Keputusan daripada Prosedur Tersimpan Menggunakan Kursor Python
Dalam Python, menyambung ke pangkalan data MySQL dan melaksanakan prosedur tersimpan boleh dicapai menggunakan mysql .modul penyambung. Walau bagaimanapun, mungkin terdapat cabaran dalam mendapatkan semula keputusan daripada prosedur tersimpan.
Untuk menyelesaikan masalah ini, kursor yang digunakan untuk memanggil prosedur tersimpan mesti diarahkan secara eksplisit untuk mendapatkan semula keputusan menggunakan kaedah stored_results(). Kaedah ini mengembalikan lelaran set hasil, yang membenarkan untuk mendapatkan semula beberapa set hasil jika prosedur tersimpan mengembalikannya.
Dalam contoh yang disediakan, prosedur tersimpan getperson mengembalikan set hasil tunggal. Kod berikut menunjukkan cara untuk mendapatkan semula keputusannya:
import mysql.connector cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb') cnx._open_connection() cursor = cnx.cursor() cursor.callproc("getperson", [1]) for result in cursor.stored_results(): people = result.fetchall() for person in people: print(person) cnx.close()
Dalam kod ini, prosedur tersimpan dipanggil dengan parameter 1 dan kaedah stored_results() digunakan untuk mendapatkan set hasil tunggal. Hasilnya kemudian diulang dan dicetak.
Penyelesaian ini mengatasi isu yang dihadapi dalam kod yang disediakan, seperti ralat "Tiada keputusan ditetapkan untuk diambil daripada" dan pengendalian berbilang set hasil yang tidak betul. Dengan mendapatkan semula set hasil secara eksplisit menggunakan stored_results(), kod boleh mengakses keputusan panggilan prosedur yang disimpan seperti yang dijangkakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Keputusan daripada Prosedur Tersimpan MySQL Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!