Во-первых, если ты используешь синтаксис
INSERT INTO table VALUES (...), то список значений должен в точности повторять список столбцов. У тебя порядок явно не совпадает. Используй синтаксис
INSERT INTO table (столбец, столбец, ...) VALUES (значение, значение, ...), так проще контролировать правильность запроса.
Во-вторых, никогда не формируй строку запроса с помощью форматирования строк! Это хороший способ заполучить SQL-инъекцию,
Бобби Тейблз подтвердит. =) Используй
плейсхолдеры (поищи строку "Never do this -- insecure!", и почитай рядом).