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

Bagaimana untuk Mendapatkan Keputusan daripada Prosedur Tersimpan MySQL dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 01:10:14650semak imbas

How to Retrieve Results from MySQL Stored Procedures in Python?

Mengambil Keputusan daripada Prosedur Tersimpan dalam Python

Masalah:

Percubaan untuk mendapatkan semula hasil daripada prosedur tersimpan MySQL menggunakan Python MySQL Connector gagal dengan ralat "Tiada keputusan ditetapkan untuk diambil daripada."

Prosedur Tersimpan:

CREATE PROCEDURE `mytestdb`.`getperson` (IN personid INT)
BEGIN
   select person.person_id,
          person.person_fname,
          person.person_mi,
          person.person_lname,
          person.persongender_id,
          person.personjob_id
     from person
    where person.person_id = personid;
END

Kod Python:

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])
people = cursor.fetchall()

for person in people:
    print(person)

cnx.close()

Punca:

Penyambung MySQL memperuntukkan berbilang set hasil untuk disimpan prosedur, walaupun apabila memulangkan satu keputusan penyata SELECT.

Penyelesaian:

Lelaran ke atas set hasil dan ambil data daripada yang sesuai:

for result in cursor.stored_results():
    people = result.fetchall()

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan 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