#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
заявлениям iirc3. @CarMoreno Я разделяю ваше мнение. Но даже на домашней странице MySQL в их примере нет оператора cursor.commit ().
4. Обратите внимание, что если есть результаты,
print(result)
строка выведет их все и исчерпает итератор, поэтому вfor
цикле не будет вывода.