@mr_diablol

Как вставить переменную в нужную строку БД?

Я что-то совсем затупил, помогите)))

Делаю задачу, где пользователь сначала должен попасть в БД, а потом туда же должно попасть определенное значение.

cursor.execute("""CREATE TABLE users ( 
    emails TEXT,
    passwords TEXT,
    numbers INTEGER
)""")
    db.commit()


Допустим вот регистрация:
def registration():
    email = str(input('Введите ваш e-mail: '))
    password = str(input('Введите ваш пароль: '))
    cursor.execute('INSERT INTO users(emails, passwords) VALUES(?, ?)', (email, password,))
    db.commit()


После этой функции пользователь играет в викторину: задает число и если оно совпадает с рандомным, то выиграл:
def quiz():
    user_number = int(input('Введите любой набор чисел от 1 до 3: '))
    if user_number > 1 and user_number <4:
        cursor.execute('INSERT INTO users(numbers) VALUES(?);', (user_number,))
        db.commit()
        win_number = random.randint(1, 3)
        if win_number == user_number:
            print("Вы выиграли!")


А вопрос в следующем: как мне добавить user_number в ту же строку, где его email и password лежат?
С этим кодом значение user_number добавляется в следующую строку.
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@mr_diablol Автор вопроса
Вдруг у кого будет такой же вопрос:

cursor.execute('UPDATE users SET numbers=? WHERE emails=?', (user_number, email))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Очевидно, надо не вставлять (insert) новую строку, а изменять (update) существующую.
Ответ написан
Комментировать
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
С помощью update.
Примеры можно посмотреть здесь, в соответствующем разделе
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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