class Database:
def __init__(self, database_file):
self.connection = sqlite3.connect(database_file, check_same_thread = False)
self.cursor = self.connection.cursor()
print('__init__:', self.cursor) # и на этом print() вылетает ошибка?
print('__init__:', self.cursor)
и проверь, отработает ли она. check_same_thread = False
? Ответ "так было в видео" не принимается.self.connection.cursor.execute
вместо self.cursor.execute
.(chat_id,)
, а не (chat_id)
. Смысл очень разный.import sqlite3
class Database:
def __init__(self, database_file):
self.connection = sqlite3.connect(database_file, check_same_thread = False)
self.cursor = self.connection.cursor()
self.cursor.execute('CREATE TABLE IF NOT EXISTS queue (chat_id INT PRIMARY KEY)'); # создаём таблицу, если её не было
def add_queue(self, chat_id):
with self.connection:
return self.cursor.execute("INSERT INTO `queue` (`chat_id`) VALUES (?)", (chat_id,))
def delete_queue(self, chat_id):
with self.connection:
return self.connection.cursor.execute("DELETE FROM `queue` WHERE `chat_id` = ?", (chat_id,))
if __name__ == '__main__':
d = Database(':memory:')
d.add_queue(123)
d.cursor.execute('SELECT * FROM queue')
print(d.cursor.fetchall())
не надо называть переменные и функции одинаково (num_1 и num_1, num_2 и num_2).