Mendapatkan Keputusan daripada Prosedur Tersimpan MySQL Menggunakan Python
Walaupun berjaya membuat panggilan ke prosedur tersimpan MySQL melalui Python, ralat berlaku semasa mencuba untuk mengambil keputusan menggunakan cursor.fetchall(). Mesej ralat ini, "mysql.connector.errors.InterfaceError: No result set to fetch from," menunjukkan set hasil jangkaan tidak tersedia.
Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan cursor.stored_results() kaedah sebaliknya. Kaedah ini mendapatkan semula sebarang set hasil yang tersedia daripada prosedur yang disimpan. Dalam kes ini, hanya ada satu set hasil, yang boleh diberikan kepada pembolehubah dan kemudiannya diulang untuk mendapatkan data yang diingini.
Berikut ialah coretan kod diubah suai yang menunjukkan penggunaan cursor.stored_results( ):
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()
Pendekatan ini berjaya mendapatkan semula keputusan daripada prosedur tersimpan dan berulang ke atasnya untuk memaparkan butiran orang. Ambil perhatian bahawa cmd_query_iter dan berbilang argumen tidak diperlukan kerana kami hanya melaksanakan satu pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Set Keputusan daripada Prosedur Tersimpan MySQL dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!