Всем доброго дня, учусь осваивать БД и столкнулся с такой проблемой, один и тот же код при вызове из разных мест, в одном случае сохраняет запись в БД, а в другом нет. Я не могу понять причину.
import sqlite3
class DataBase:
table = [
'date TEXT',
'id TEXT',
'username TEXT',
'promocode TEXT',
]
def __init__(self, database_path: str):
self.db = sqlite3.connect(database_path)
self.cursor = self.db.cursor()
def create_table(self, table_name):
query = f'''CREATE TABLE IF NOT EXISTS {table_name}(
{DataBase.table[0]},
{DataBase.table[1]},
{DataBase.table[2]},
{DataBase.table[3]}
)'''
self.execute_query(query)
def add_user_entry(self, date, user_id, username, table_name):
query = f'''INSERT INTO {table_name}(date, id, username)
VALUES('{date}', '{user_id}', '{username}')'''
self.execute_query(query)
def add_column(self, table_name, new_value, key_value, column='promocode', key='id'):
query = f'''UPDATE {table_name} SET {column} = "{new_value}" WHERE {key} = "{key_value}"'''
self.execute_query(query)
def execute_query(self, query):
self.cursor.execute(query)
self.db.commit()
def create_entry_db(date, username, user_id, table_name='promocode', path='../promocode.db'):
db = DataBase(path)
db.create_table(table_name)
db.add_user_entry(username=username, user_id=user_id, date=date, table_name=table_name)
При таком вызове, находящемся в одном файле с кодом выше, запись сохраняется в БД:
create_entry_db('date', 'username', 'user_id')
А при таком вызове из другого файла - нет:
data_base.create_entry_db('date', 'username', 'user_id')
Код полностью выполняется и ошибок не происходит.