Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Set Keputusan daripada Prosedur Tersimpan MySQL dalam Python?

Bagaimana untuk Mendapatkan Set Keputusan daripada Prosedur Tersimpan MySQL dalam Python?

DDD
DDDasal
2024-12-04 05:22:15918semak imbas

How to Retrieve Result Sets from MySQL Stored Procedures in Python?

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!

Kenyataan:
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