Я сталкиваюсь с ошибкой "нет такого столбца" в sqlite3 при обновлении значений столбца - PullRequest
1 голос
/ 11 марта 2020

функция, которую я определил для обновления значений таблицы

def updateInfo(id, term, val):
    try:
        cursor.execute(f"UPDATE students SET {term}={val} WHERE id={id}")
    except Error as err:
        print(err)

Моя таблица

CREATE TABLE students(
    id INTEGER,
    fname TEXT,
    lname TEXT,
    branch TEXT,
    course TEXT,
    emailID TEXT,
    mobileNum TEXT,
    PRIMARY KEY(id)
)

, принимая данные от пользователя, только "mobileNum", введенный пользователем, работает и для других, таких как "fname" и других, я не получаю такую ​​ошибку столбца

stuId = int(input("Enter students ID: "))
upValue = input("What do you want to update: ")
reValue = input("Update the value: ")
updateInfo(stuId, upValue, reValue)

1 Ответ

1 голос
/ 11 марта 2020

Если val - строка, она будет интерпретирована как имя столбца, поскольку она не заключена в кавычки. Брось их туда и все будет в порядке:

cursor.execute(f"UPDATE students SET {term}='{val}' WHERE id={id}")
# Here -------------------------------------^-----^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...