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).
2. Окей, гугл, python sqlite select. Много полезных ссылок, например, вот тут подробно всё разобрано.