Работаю с 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')
Данные скорее всего заносятся в БД, но они не подтверждены, необходимо закоммитить транзакцию (cnx.commit()
).
В руководстве имеется полный пример вставки данных: Inserting Data Using Connector/Python
Виртуальный выделенный сервер (VDS) становится отличным выбором
Когда пишешь запрос с эквисоединением во фразе INNER JOIN можно опустить INNERНо бывают такие случаи где, не указав INNER, запрос может быть выполнен...
Не получается очистить холст, не хватает какой-то простой доработкиПодскажите пожалуйста какой