Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak dapat mengembalikan hasil dari prosedur tersimpan menggunakan kursor Python

Sudahkah Anda mencoba memilih salah satu kumpulan hasil?

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

Bisa jadi itu mengalokasikan untuk beberapa hasil meskipun Anda hanya memiliki satu SELECT stmt. Saya tahu dalam prosedur tersimpan MySQLi PHP melakukan ini untuk memungkinkan pengembalian variabel INOUT dan OUT (yang sekali lagi, Anda tidak memilikinya, tapi mungkin tetap mengalokasikan).

Kode lengkap yang saya gunakan (yang berfungsi) adalah:

import mysql.connector

cnx = mysql.connector.connect(user='me',password='pw',host='localhost',database='mydb')
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()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan tampilan MySQL

  2. Kesalahan acara MySQL menggunakan php

  3. MySQL - Memilih data dari beberapa tabel semua dengan struktur yang sama tetapi data yang berbeda

  4. MySQL InnoDB Cluster 8.0 - Panduan Operasi Lengkap:Bagian Kedua

  5. 5 Alat Pemantauan MySQL Teratas