Подключение к БД по несколько раз

133
26 августа 2019, 22:20

Работаю с PyQt5, есть форма состоящая из строки и кнопки. Записываем текст в строку, нажимаем на кнопку, а та подключается к БД и записанную строку добавляет в БД или дает нам знать, что запись существует. Скрипт работает, но БД открывается и закрывается по несколько раз. Что я делаю не так?

def sql_cnt_categ(self):
    text = self.per # сохраняю в переменную текст
    cnx = mysql.connector.connect(user='user', password='111',
                          host='127.0.0.1',
                          database='data')
    try:
        cursor = cnx.cursor()
        print('base opened')
        cursor.execute("""INSERT INTO categories (category) VALUES """ + "('%s')" % text + """;""")
        cnx.commit()
        print('Added')
    except Exception as e: #если записи нет, то добавляю
        print(e)
        self.error.setText('%s already exists' % text) # в оконной форме пишу что запись существует
        self.error.adjustSize()
    finally:
        cnx.close()
        print('base closed')
Answer 1

Данные скорее всего заносятся в БД, но они не подтверждены, необходимо закоммитить транзакцию (cnx.commit()).

В руководстве имеется полный пример вставки данных: Inserting Data Using Connector/Python

READ ALSO
где нужен inner?

где нужен inner?

Когда пишешь запрос с эквисоединением во фразе INNER JOIN можно опустить INNERНо бывают такие случаи где, не указав INNER, запрос может быть выполнен...

121
Не получается очистить canvas рисовалку

Не получается очистить canvas рисовалку

Не получается очистить холст, не хватает какой-то простой доработкиПодскажите пожалуйста какой

110