Rumah >pangkalan data >tutorial mysql >Bagaimana Cara Mengambil Keputusan dengan Betul dari Prosedur Tersimpan MySQL dalam Python?
Memanggil Prosedur Tersimpan MySQL dengan Kursor Python
Apabila menggunakan prosedur tersimpan MySQL dalam aplikasi Python, adalah penting untuk mengendalikan pengambilan hasil dengan betul. Walaupun ia mungkin kelihatan mudah, mendapatkan semula hasil daripada prosedur boleh membawa kepada beberapa ralat yang tidak dijangka.
Cabaran biasa ialah menghadapi pengecualian "Tiada keputusan ditetapkan untuk diambil daripada" apabila menggunakan cursor.fetchall(). Ini berlaku kerana prosedur tersimpan selalunya mengembalikan berbilang set hasil dan cursor.fetchall() direka bentuk untuk lelaran melalui satu set sahaja.
Untuk menyelesaikan isu ini, anda perlu mendapatkan set hasil tertentu minat. Ini boleh dilakukan menggunakan kaedah cursor.stored_results(), yang mengembalikan penjana set hasil. Setiap set hasil kemudiannya boleh diambil secara berasingan menggunakan fetchall().
for result in cursor.stored_results(): people = result.fetchall()
Dalam senario tertentu, anda juga mungkin menghadapi ralat "Gunakan cmd_query_iter untuk pernyataan dengan berbilang pertanyaan" apabila menggunakan cursor.execute(). Ini berlaku kerana penyambung tersilap mentafsir panggilan prosedur sebagai pernyataan berbilang pertanyaan.
Untuk membetulkan isu ini, disyorkan untuk menetapkan parameter multi=True secara eksplisit apabila melaksanakan berbilang pertanyaan. Ini memastikan bahawa penyambung mengendalikan senario sedemikian dengan betul.
cursor.execute("call getperson(1)", multi=True)
Dengan mengikut garis panduan ini, anda boleh mendapatkan semula hasil daripada prosedur yang disimpan dengan berkesan dan mengendalikan berbilang set hasil mengikut keperluan.
Atas ialah kandungan terperinci Bagaimana Cara Mengambil Keputusan dengan Betul dari Prosedur Tersimpan MySQL dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!