У меня есть две программы: одна заполняет и обновляет базу данных, а другая выбирает информацию из базы каждые 10 секунд.
Я использую Pymysql.
Когда я обновляю базу данных, я фиксируюданные, я могу видеть результаты в базе данных с командными строками, но другая программа имеет тот же вывод и не получает новые данные!
Нужно ли делать специальный запрос, отличный от * 1007?*?Нужно ли закрывать соединение и открывать его перед всеми запросами?
Я создаю класс GetData
при запуске программы и вызывается get_data
каждые 10 секунд.
class GetData:
def __init__(self):
self.conn = pymysql.connect(host='localhost', user='root', password='', db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
def get_data(self, data):
with self.conn.cursor() as cursor:
self.sql = "SELECT id_data, somedata FROM mytable WHERE (%s = 'example');"
cursor.execute(self.sql, (data,))
return cursor.fetchall()
def close_conn(self):
self.conn.close()
Программа, заполняющая базу данных:
class FillDb:
def __init__(self):
self.conn = pymysql.connect(host='localhost', user='root', password='', db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
#added this line but doesen't help!
self.conn.autocommit(True)
def add_in_db(self, data):
with self.conn.cursor() as cursor:
self.sql = "INSERT INTO mytable (somedata) VALUES (%s);"
cursor.execute(self.sql, (data,))
self.conn.commit()