Каким образом я могу заставить свой код, записывать значение в базу данных на того пользователя, на строку того пользователя который зарегистрирован?
Добрейшего дня. Сможете ли вы мне подсказать краткий концепт-код, как мне можно проверять человека в базе данных а после записывать его в его строку все необходимые данные. Свой концепт, без данного кода-вопроса представляю ниже. Данный код сделан для телеграмм бота на базе aiogram.
И так, на данный момент мой концепт. Человек отправляет боту команду /start. Бот следующим кодом записывает его уникальный id:
await bot.send_message(message.from_user.id, message.from_user.first_name)
print(message.from_user.id)
try:
teled = message.from_user.id
start_sql = "INSERT INTO users (teleid) VALUES (%s)"
tupe = teled
conn = await aiomysql.connect(host='localhost', port=3306, user='root', password='*******', db='aiodb',
loop=loop)
cur = await conn.cursor()
await cur.execute(start_sql, tupe)
print("yes")
await conn.commit()
except Error as e:
print('але, сударь, у вас ошибка по бд')
И так, когда человек записан в базу данных, я иду к своей главной головной боли. Следующий код должен записать имя человека в базу данных:
@dp.message_handler()
async def names(message: types.Message):
mes = message.text
if mes == "⚡️ Назад":
return
else:
start_sql = "INSERT INTO users (name) VALUES (%s)"
messg = mes
conn = await aiomysql.connect(host='localhost', port=3306, user='root', password='******', db='aiodb',
loop=loop)
cur = await conn.cursor()
await cur.execute(start_sql, messg)
print("yes")
await conn.commit()
#сделал без цикла try/except пока что
И с этого кода начинается проблема. MySQL не собирается (как и мой код) записывать имя человека в нужную строку. Вместо этого он пытается создать новую строку, и записать туда значение имени.
Буду благодарен за любую помощь!
aiogram - 2.19
PyMySql - 0.9.3
Python - 3.10