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

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

Я сделал БДшку - вайтлист, в которую по команде я могу добавить айди юзера и это айди туда сохраняется. Но когда я пытаюсь вызвать айди юзера из БДшки и сравнить его с айди юзера из чата, он проверяет как то не так, айди в БД есть, а проверка говорит, что нету доступа в порядке.

Код из db.py:

import sqlite3
cursor.execute("CREATE TABLE white(adduser_id INT)")

def get_users(adduser_id):
db = sqlite3.connect('data.db', check_same_thread=False)
cursor = db.cursor()
cursor.execute("SELECT adduser_id FROM white WHERE adduser_id=?", (adduser_id, ))
rows = cursor.fetchone()
print(rows)
return rows

Код проверки из main.py:

@dp.message_handler(commands=['checkwhite'])
async def close_bot(message: types.Message):
if db.get_users_exist(message.chat.id) == True:
if message.chat.id == db.get_users(message.chat.id):
await bot.send_message(chat_id=message.chat.id, text='Добро пожаловать')
print(db.get_users(message.chat.id))
else:
await bot.send_message(chat_id=message.chat.id, text='у тебя нету прав')
print(db.get_users(message.chat.id))
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
fetchone возвращает кортеж (tuple), который вы сравниваете с целочисленным chat_id.
Замечания:
Используйте CREATE TABLE IF NOT EXISTS ...
Cтилистически, get_users, rows - почему названия во множественном числе, если работа идёт с единичными объектами?
Ответ написан
@nozzy
Symfony, Laravel, SQL, Python, Telegram
У тебя идет проверка в db.get_users_exist, где возвращается False и до проверки db.get_users не доходит. Ну и стилистика конечно, команда бота checkwhite, вызывает функцию close_bot) Если из инета надергал код из разных мест, хоть как то его обрабатывай.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 00:55
2500 руб./за проект
02 февр. 2025, в 00:25
5000 руб./за проект
02 февр. 2025, в 00:18
1000 руб./за проект