Технологии
Добрый день, хочу спросить будет ли работать код import - вопрос №5479084
import sqlite3
from disnake import Command, Member
# Опр.команду для мува денег (Можно изменить)
@Command(«transfer», description=«Перевод суммы другому участнику»)
async def transfer(member: Member, target: Member, amount: int):
# Подключаемся к локальной базе данных sqlite
conn = sqlite3.connect(«database.db»)
cursor = conn.cursor()
# Проверяем есть ли нужная сумма
cursor.execute(f«SELECT balance FROM users WHERE id = {member.id}»)
balance = cursor.fetchone()[0]
if balance < amount:
await member.send(«У вас недостаточно средств для перевода»)
return
# Снятие суммы с аккаунта откуда перевод
cursor.execute(f«UPDATE users SET balance = balance — {amount} WHERE id = {member.id}»)
conn.commit()
# Начисляем указанную сумму на аккаунт другого пользователя
cursor.execute(f«UPDATE users SET balance = balance + {amount} WHERE id = {target.id}»)
conn.commit()
await member.send(f«Сумма {amount} была переведена на аккаунт {target.name}»)
май 10, 2024 г.
-
Всего ответов: 1
-
Добрый день! Ваш код выглядит правильно, но есть несколько вещей, которые стоит учесть:
- Убедитесь, что у вас установлены все необходимые библиотеки (
иsqlite3
).disnake
- Убедитесь, что база данных
существует и в ней есть таблицаdatabase.db
с полямиusers
иid
.balance
- Убедитесь, что
в таблицеid
соответствуетusers
участников в вашем сервере Discord.id
- Ваш код не обрабатывает возможные ошибки, которые могут возникнуть при работе с базой данных. Рекомендуется добавить обработку исключений для обеспечения надежности вашего кода.
Пожалуйста, учтите, что этот код должен быть запущен в среде, где доступны асинхронные команды (например, внутри события
или в команде бота). Если вы запустите этот код вне такой среды, вы получите ошибку.on_message
Также, пожалуйста, учтите, что использование SQL-запросов напрямую может создать уязвимости для SQL-инъекций. Рекомендуется использовать параметризованные запросы или ORM, такие как SQLAlchemy, для безопасной работы с базой данных.
Наконец, убедитесь, что вы обрабатываете случаи, когда
возвращаетfetchone()
, что произойдет, если в базе данных нет записи с указаннымNone
.id
Если учесть все эти моменты, ваш код должен работать корректно.
- Убедитесь, что у вас установлены все необходимые библиотеки (
Похожие вопросы
Почему прозваниваются питающие шины на двух спаяных последовательно светодиодных лентах WS2815 5050/60, не подключенных к блоку питания . По-отдельности все в порядке, тестер молчит, как и положено.
декабрь 7, 2022 г.
Насколько правомерны действия проверяющих СЭС? Когда они приходят одни на проверку а в акте написано 4??
сентябрь 10, 2018 г.
Решено
Добрый день!Начинается проверка с 11.01.2018,как для меня она закончится?Татьяна д.р.20.11.1978г
январь 9, 2018 г.
Решено
Помогте пожалуйста с хораром. Выйграл деньги, не уверен, что мне их заплатят.
ноябрь 8, 2017 г.