Как заставить данный код записывать данные в базу данных?
Произошла проблема - по непонятной мне причине, код не хочет записывать значение в базу данных. Концепция кода следующая - человек отправляет сообщение, и бот записывает его сообщение в базу данных. Если в коде произошла ошибка - пишется "ERR". Но бот при этапе отправки сообщения, просто не собирается отправлять данные в бд, даже не подает знаков отправки. Благодарен за любую помощь ?
Код:
@dp.message_handler(Text(equals="⚡️ ️Купить билет"))
async def with_pureee(message: types.Message):
await message.reply("? Загружаем данные")
keyboard = ReplyKeyboardRemove()
back = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
buttons = ["⚡️ Назад"]
back.add(*buttons)
await message.answer("❗️ Пожалуйста, введите ваше ФИО. Оно может быть сверено с вашим паспортом в целях безопасности", reply_markup=back)
@dp.message_handler()
async def names(message: types.Message):
mes = message.text
if mes == "⚡️ Назад":
return
else:
try:
conn = await aiomysql.connect(host='localhost', port=3306,
user='root', password='', db='aiodb', loop=loop)
cur = await conn.cursor()
await cur.execute("INSERT INTO users(name) values(msg)")
await conn.commit()
await cur.close()
except Exception as e:
@dp.message_handler()
async def names(message: types.Message):
await message.answer("ERR")
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Для начала вот так будет значительно лучше. Жду ответа на комментарий
class InputDataUser(StatesGroup):
FIO = State()
@dp.message_handler(text="⚡️ ️Купить билет")
async def with_pureee(message: types.Message):
await message.reply("? Загружаем данные")
back = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
buttons = ["⚡️ Назад"]
back.add(*buttons)
await message.answer(
"❗️ Пожалуйста, введите ваше ФИО. Оно может быть сверено с вашим паспортом в целях безопасности",
reply_markup=back
)
await InputDataUser.FIO.set()
@dp.message_handler(state=InputDataUser.FIO)
async def names(message: types.Message, state: FSMContext):
mes = message.text
if mes == "⚡️ Назад":
await state.finish()
return
try:
conn = await aiomysql.connect(host='localhost', port=3306,
user='root', password='', db='aiodb', loop=loop)
cur = await conn.cursor()
await cur.execute("INSERT INTO users(name) values(msg)")
await conn.commit()
await cur.close()
await state.finish()
except Exception:
await message.answer("ERR")