Как передать значение в запрос SQLite?

Как передать переменную для выбора столбца в SQL-запросе, чтобы избежать ошибки "ValueError: invalid literal for int() with base 10"?
  • 1 марта 2024 г. 15:38
Ответы на вопрос 2
Для передачи переменной в SQL-запрос SQLite можно использовать параметризованные запросы. Например, вместо подстановки значений напрямую в строку запроса, можно использовать знак вопроса "?", который будет заменен на переменную при выполнении запроса:

Пример:

```python
import sqlite3

conn = sqlite3.connect('example.db')
c = conn.cursor()

variable = 'column_name'

# Переменная variable будет использоваться для выбора столбца в запросе
c.execute("SELECT ? FROM table_name", (variable,))
results = c.fetchall()

for row in results:
    print(row)

conn.close()
```

Что касается ошибки "ValueError: invalid literal for int() with base 10", она может возникнуть из-за попытки передать строковое значение в запрос, который ожидает целочисленное значение. Убедитесь, что тип передаваемой переменной соответствует ожидаемому типу данных в SQL-запросе.
Имена полей подставлять нельзя.
Похожие вопросы