@ProgramistNoob
Начинающий программист

Как выводить определённую строку из БД sqlite3?

Доброго времени суток! Вопрос состоит в том, что мне нужно вывести определённую строку из всей БД, при этом не через WHERE. Как сделать так,чтобы, например, к пользователю возвращалась та строка, которую он только что заполнил? Или, на крайняк, только id? Фрагмент кода:
def registration():
    NAME = input('Как тебя зовут?(Например, Иван): ')
    SURNAME = input('Введи фамилию (Например, Иванов): ')
    PATRONYMIC = input('Введи отчество (Например, Иванович: ')
    CLASS = input('В каком классе ты учишься? (Например, 6А) : ')
    cursor.execute('INSERT INTO ids (name, surname, patronymic, class) VALUES (NAME, SURNAME, PATRONYMIC, CLASS)')

def take(cursor):
    book = input('Какую книгу ты хочешь взять? (введи только название): ')
    user_id = ('Пожалуйста, введи свой id: ')
    cursor.execute('')


Код, конечно, условный, но работать должно вот с таким фрагментом)
В последнем cursor.execute, как я думаю, и должен быть вывод)
  • Вопрос задан
  • 3510 просмотров
Пригласить эксперта
Ответы на вопрос 2
@WaterSmith
Android-разработчик. Java, Kotlin
при этом не через WHERE

Зачем же себя ограничивать? Как раз через WHERE это и надо делать. Если судить по вашему коду, то проблема у вас в том, что вы не знаете что писать в WHERE. Потому что вы в таблицу не записываете id.
Вам нужно сделать следующее. При начале сеанса регистрации, сгенерировать очередной уникальный id (способы могут быть разные). При записи регистрационных данных, этот id сохранить вместе с данными.
А при необходимости данные получить - извлечь их из базы используя условие WHERE id = currentId
Ответ написан
Комментировать
sotanodroid
@sotanodroid
Python/Golang developer
Собственно только через WHERE.
cursor.execute("SELECT * FROM table WHERE name = %s AND surname = %s", (var1, var2))

Здесь %s выступают плейсхолдерами для вводимых значений и так же защищают от SQL инъекций.

Будет полезно ещё почитать эту статью: https://habr.com/ru/post/321510/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы