Python и MySQLdb: замена таблицы, приводящая к синтаксической ошибке
-
29-10-2019 - |
Вопрос
Мне нужно время от времени динамически изменять таблицы и переменные, поэтому я написал такой метод на Python:
родовое словоОднако это приводит к исключительной синтаксической ошибке.Я попытался отладить его, поэтому распечатал переменные в методе и заполнил их вручную, и это сработало.Значит, я не уверен, что делаю не так?
Это потому, что я пытаюсь заменить стол?
Также как отладить mysqldb, чтобы он печатал замененный запрос в виде строки?
Решение
Подстановка параметров в API БД предназначена только для значений, а не для таблиц или полей.Вам нужно будет использовать обычную замену строк для следующих:
родовое словоОбратите внимание, что заполнитель значения имеет двойной код-код-тега - это значит, что он не используется при начальной подстановке строки.
Другие советы
Вот полный рабочий пример
родовое словоВам нужно будет использовать подстановку строк для добавления имен таблицы и столбца, драйвер будет обрабатывать только параметры.
Эд: НМ, Дэниел ответил быстрее и полнее
Вы хотели написать:
родовое словоа это просто ошибка с форматированием строки?
Кстати, почему вы пишете явный SQL для такого рода работы?лучше использовать волшебный sqlalchemy для манипуляций с python sql ..