Задать вопрос
@msfx_os

Как сделать правильное сравнение айди юзера из БД и переменной?

Я хочу сделать код для проверки айди юзера. У меня есть переменная в которой лежит айди юзера. Я пытаюсь выполнить проверку через if. Но когда я пытаюсь вывести информацию с БДшки, появляется неизвестная мне ошибка. Код и фото БДшки приложу ниже. Так я хотел бы сделать так, что есть если айди юзера не равно с айди юзера из БДшки, программа не закрывалась с ошибкой о том, что там ничего не указано, а просто писал в консольную команду "Error". Прошу помочь!
Код:
import sqlite3

admiss = 4545454446

def check_adm():
    databaseFile = ("data.db")
    db = sqlite3.connect(databaseFile, check_same_thread=False)
    cursor = db.cursor()
    print(f"d{admiss}")
    cursor.execute(f'''SELECT * FROM admin WHERE auser_id={admiss}''')
    if cursor.fetchone() is None:
        return False
    else:
        return True

def main():
    print("Выполняется проверка системы...")
    if check_adm != admiss:
        print(F"{check_adm}")
        print(f"{admiss}")
        print("Error")
        quit()

if __name__ == '__main__':
    main()

Итог из консольной команды:
672a53fa64731513394663.png
БДшка:
672a541c9cdd6701119802.png
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой 8 комментариев
Решения вопроса 1
@Everything_is_bad
check_adm vs check_adm(), это не считая что дальше тоже всё плохо
сначала решаем более простые задачи, только потом пишем ботов
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Ramba-ART
попробуй так

import sqlite3

admiss = 4545454446

def check_adm():
    databaseFile = "data.db"
    db = sqlite3.connect(databaseFile, check_same_thread=False)
    cursor = db.cursor()
    print(f"d{admiss}")
    cursor.execute("SELECT * FROM admin WHERE auser_id=?", (admiss,))
    if cursor.fetchone() is None:
        return False
    else:
        return True

def main():
    print("Выполняется проверка системы...")
    if not check_adm():
        print(f"Пользователь с ID {admiss} не найден")
        print("Error")
        quit()

if __name__ == '__main__':
    main()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 13:01
50000 руб./за проект
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект