sql >> Database >  >> RDS >> Mysql

Kan geen resultaten van opgeslagen procedure retourneren met Python-cursor

Heb je geprobeerd een van de resultatensets te kiezen?

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

Het kan zijn dat het meerdere resultatensets toewijst, ook al heb je er maar één SELECT stmt. Ik weet dat in PHP's MySQLi opgeslagen procedures dit doen om INOUT- en OUT-variabelen mogelijk te maken (wat nogmaals, je hebt er geen, maar misschien wijst het hoe dan ook toe).

De volledige code die ik gebruik (die werkt) is:

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. Inleiding tot automatisch schalen van Amazon Web Services (AWS)

  2. NOW() Voorbeelden – MySQL

  3. Hoe kan ik met SQLPLUS naar een CSV-bestand spoolen?

  4. SQL-query om een ​​tabel te maken in MySQL