KPoseidon
@KPoseidon
Шарпист с косяками

Почему в бд MySql не сохраняются данные?

Телеграм бот при "команды" фб должен отправлять на бд данные, но... они почему-то не сохраняются. Что я не так мог сделать?

if(message.text == "фб" or message.text == "Фб" or message.text == "ФБ" or message.text == "фБ"):
        db.RegisterNewUser(message.from_user.id, 100, 10, "Anonim")

отрывок из bot.py

import mysql.connector
from config import myDb

mycursor = myDb.cursor()


class MySqlRequest:
    def GetUserData(userId):
        sql = f"SELECT * FROM Players WHERE user_id = '{userId}'"
        mycursor.execute(sql)
        myresult = mycursor.fetchone()
        print(myresult)
        myDb.commit
    def RegisterNewUser(userId, dollars, fba_coins, nickname):
        sql = f"INSERT INTO Players (dollars, fba_coins, nickname, user_id) VALUES ('{dollars}', '{fba_coins}', '{nickname}', '{userId}')"
        mycursor.execute(sql)
        myDb.commit

код из mySqlConnector.py
  • Вопрос задан
  • 166 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, выражение myDb.commit ничего не делает. Тут видимо подразумевался вызов метода commit. Во-вторых, не надо использовать интерполяцию строк для формирования sql-запросов. В-третьих, не надо использовать глобальные переменные.
Ответ написан
@PavelMos
(message.text == "фб" or message.text == "Фб" or message.text == "ФБ" or message.text == "фБ") можно заменить на message.text.lower()=='фб'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы