MySQL 连接器游标说明

MySQL Connector Cursor Description

我正在尝试使用 MySQL 连接器在结果前面插入过程输出的列标题。

我的代码目前是:

    import mysql.connector
from mysql.connector import errorcode


cnx = mysql.connector.connect(user='###', password='###',
                              host='###',
                              port='###',
                              database='new_schema')
if cnx.is_connected():
        print('Connection Established.')
    else:
        print('Connection Failed.')


    def call_new_carer_report():
        cur = cnx.cursor()
        cur.callproc('new_carer_report')
        cur.stored_results()
        for result in cur.stored_results():
            global results
            results = result.fetchall()
        header = [i[0] for i in cur.description]
        rows = [list(i) for i in cur.fetchall()]
        rows.insert(0, header)
        cur.close()

我使用 results 正确收到输出,但在线收到错误:

header = [i[0] for i in cur.description]

哪个州:

    header = [i[0] for i in cur.description]
TypeError: 'NoneType' object is not iterable

如有任何帮助,我们将不胜感激。

终于找到我哪里出错了。

新功能代码为:

def call_new_carer_report():
    cur1 = cnx.cursor()
    cur1.callproc('new_carer_report')
    cur1.stored_results()
    for result in cur1.stored_results():
        global results1
        results1 = result.fetchall()
    header1 = [i[0] for i in result.description]
    rows1 = [list(i) for i in results1]
    rows1.insert(0, header1)
    print(rows1)
    cur1.close()

我意识到我试图从 Cursor 对象而不是存储的结果中获取描述。

此错误 "TypeError: 'NoneType' object is not iterable" 很可能是由于查询中的 SQL 语句不正确。