Как исключить ошибку `sqlite3.OperationalError: no such column: ilya`, возникающую при попытке вставки данных в базу данных с помощью команды `cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})')? Вот часть кода, где вставляются данные: ```python cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})') ```
Чтобы исправить проблему с добавлением данных в базу данных SQLite, необходимо правильно писать команду SQL для вставки данных. Ошибка `sqlite3.OperationalError: no such column: ilya` указывает на то, что в SQL-запросе используется неправильный синтаксис или отсутствует обязательная колонка в таблице. В вашем случае, чтобы избежать этой ошибки, необходимо использовать параметризированные запросы для вставки данных. Вместо вставки данных напрямую в строку SQL, лучше использовать параметры. Например: ```python cur.execute('INSERT INTO result(name) VALUES (?)', (data["Name"],)) ``` Здесь `?` является заполнителем для параметра, который будет подставлен в запрос. Передавайте данные как параметры в метод `execute()` для того, чтобы избежать возможных ошибок и защититься от SQL-инъекций. Использование параметризированных запросов не только упрощает работу с базой данных, но и обеспечивает безопасность вашего приложения.
INSERT INTO result(name) VALUES (ilya)
Вы пытаетесь вставить в колонку name значение из колонки ilya. Строки должны быть в кавычках.
Для защиты от SQL-инъекции нужно использовать плейсхолдеры
- cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})') - db.commit() - cur.execute(f'INSERT INTO result(name) VALUES({data['School_class']})') + cur.execute('INSERT INTO result(name, class) VALUES (?, ?)', (data["Name"], data['School_class']))
cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})')
Так нельзя подставлять параметры в SQL-запрос по ряду причин. Ваша ошибка из-за отсутствия кавычек при такой подстановке, но даже если поставить кавычки в форматную строку так делать нельзя. Найдите любой простой отдельный работающий пример вставки в бд с передачей параметра и посмотрите. Таких в сети миллион. Можно ещё погуглить как правильно передавать параметры в sql-запос. а как неправильно и почему.