странная ошибка вставки mysql - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь вставить значения dict в базу данных. Но я получаю ошибку. вот мой словарь . Я использую этот код.

       `cols = filter_dict.keys()
        vals = filter_dict.values()
        ("INSERT INTO table (%s) VALUES (%s)", [cols, vals])
`

Когда я только печатаю этот запрос ("INSERT INTO table (%s) VALUES (%s)", [cols, vals]). Я получаю следующий вывод. ('INSERT INTO table (%s) VALUES (%s)', [['cinematography', 'name', 'producer', 'caption', 'studio', 'editing'], ['Venkat Prasad', '100% Love', 'Bunny Vasu', '', '100% Love Poster.jpg', 'Chandra Sekhar T Ramesh,Hari Prasad']])

Но когда я выполняю этот запрос, я получаю странный вывод. the manual that corresponds to your MySQL server version for the right syntax to use near \'table (("\'cinematography\'", "\'name\

Зачем выполнять запрос, добавляя `\ 'к каждому столбцу ?? Может кто-нибудь мне помочь? спасибо

1 Ответ

2 голосов
/ 27 октября 2011

Вероятность обратной косой черты связана с вашим отладчиком. Вы запускаете свой код в интерактивном режиме?

В любом случае, актуальные проблемы:

  • table является зарезервированным словом . Вы должны поставить table в кавычки.
  • Если ваша таблица содержит более одного столбца, вам нужно иметь несколько %s и несколько значений.

Например:

"INSERT INTO `table` (%s, %s, &s) VALUES (%s, %s, %s)"

Вам также необходимо изменить (cols, vals), чтобы перечислить отдельные значения.

(cols[0], cols[1], cols[2] , vals[0], vals[1], vals[2])

Я бы также настоятельно предложил вам попытаться найти более подходящее имя для вашей таблицы, желательно такое, которое:

1) описывает, какие данные содержит таблица, и

2) не зарезервированное слово

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...