Курсор Mysql не извлекает никаких данных

#python #mysql #mysql-connector

Вопрос:

Я хочу сделать один запрос SELECT из python в базу данных mysql. Но я получаю пустой список, когда звоню cursor.fetchall() , я уже проверил соединение и запрос с помощью DBeaver, и он отлично работает. Я попытался следовать учебным пособиям по https://dev.mysql.com но это не сработало. Вот моя функция:

 import mysql.connector
from mysql.connector import connect

def execute_query_2(self,query):
        connection = connect(
                host="config.host",
                database="config.db_name",
                user="config.db_user",
                password="config.db_user"
            )
        print(connection)
        cursor = connection.cursor()
        cursor.execute(query)
        result = cursor.fetchall()
        print(result)
        for row in result:
            print(row)
 

Это print(connection) дает мне mysql.connector.connection_cext.CMySQLConnection object at 0x7f6a725bfca0 .
Также запрос успешно загружается как 'SELECT * from occUserManager.addressInformation' .
В результате для этого должно получиться 44 строки.

Любая помощь более чем приветствуется.

Комментарии:

1. Я думаю, что это необходимо connection.commit() после cursor.execute()

2. Вам не нужно брать на себя обязательства по SELECT заявлениям iirc

3. @CarMoreno Я разделяю ваше мнение. Но даже на домашней странице MySQL в их примере нет оператора cursor.commit ().

4. Обратите внимание, что если есть результаты, print(result) строка выведет их все и исчерпает итератор, поэтому в for цикле не будет вывода.