Ошибка типа: объект «Соединение» не повторяется, когда я пытаюсь получить данные из MySQL - PullRequest
0 голосов
/ 10 января 2020

Я получаю

TypeError: 'Connection' object is not iterable

, когда пытаюсь получить данные из моей MySQL БД.

Я хочу выбрать случайный 5 данных из моей БД и что-то инициализировать. Чем я хочу отправить эти данные по электронной почте. Первая проблема в том, что я не могу получить какое-либо значение из моей БД.

Вот мой код, мне нужна помощь.

import MySQLdb
import numpy as np
import pandas as pd
from random import randint
import mysql.connector


db = MySQLdb.connect(host="localhost", port=3308,
                     user="root", passwd="", db="mail_project")
cur = db.cursor()

cur.execute("""
    SELECT * FROM 
        `mail_project`.`words`
    WHERE ID = 5;
""", db)
db.commit()

1 Ответ

1 голос
/ 10 января 2020

Вы должны попытаться выполнить без добавления соединения с БД в конце.

cur.execute("SELECT * FROM mail_project.words WHERE ID = 5")
  • Также это запрос на выборку, который означает, что нет необходимости фиксировать какие-либо изменения.
  • оба py mysql или MySQLdb поддерживают только 1 запрос за раз, поэтому также нужна точка с запятой.

Вы можете получить свои результаты, используя cur.fetchall () или cur.fetchone ()

попробуйте использовать

print(cur.fetchall())
  • Если это одна строка, ваши результаты будут представлены в формате кортежа.
  • Больше, чем один даст результаты в виде кортежа в формате кортежа.

Кроме того, в БД использование try и кроме блока всегда является хорошей практикой, поскольку все может происходить, если это не предварительный сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...