Почему возникает ошибка "syntax error near ','" при передаче информации из бота Telegram в sqlite3 базу данных?

Как исправить синтаксическую ошибку в запросе SQL при вставке данных из бота в БД, чтобы избежать появления ошибки "sqlite3.OperationalError: near ",": syntax error" в вашем коде?
  • 17 июня 2024 г. 13:51
Ответы на вопрос 3
Ошибка "syntax error near ','" возникает из-за неправильного синтаксиса запроса SQL при вставке данных в базу данных sqlite3. Это может произойти, например, если вы пытаетесь передать данные в столбцы, разделенные запятой, вместо использования правильного синтаксиса.

Чтобы избежать этой ошибки, необходимо правильно сформировать запрос SQL, обеспечив корректное форматирование данных. Например, если у вас есть таблица users с полями id, name и age, запрос SQL для вставки данных должен иметь следующий вид:

```
INSERT INTO users (name, age) VALUES (?, ?);
```

где "?" - это параметры, которые будут заменены на соответствующие значения при выполнении запроса.

Чтобы исправить синтаксическую ошибку в вашем коде, убедитесь, что вы правильно формируете запрос SQL и передаете данные в соответствующем формате. Также следует использовать параметризированные запросы для избегания ошибок и SQL-инъекций.
# cursor.execute(f'INSERT INTO sausages (user_name, product_type, product_type_amount) VALUES ({user_name}, {product_type}, {product_type_amount})')
cursor.execute('INSERT INTO sausages (user_name, product_type, product_type_amount) VALUES (?, ?, ?)', (user_name, product_type, product_type_amount))

Почему не стоит использовать f строки в SQL Python запросах?
Гугление особо не помогло.
никогда не было и вот опять, из каждого утюга вещают, не формируйте запросы через f-string, открой доки и почитай как правильно это делать. Про это прям в туториале оф доках сразу написано
Похожие вопросы