Как выполнить вставку базы данных сделать MariaDB с помощью Python?

0

У меня проблема с вложением данных в таблицу базы данных. Я использую Python и MariaDB. Соединение с базой данных открыто и протестировано, я могу запросить базу данных, но я не могу пригвоздить синтаксис вставки. Я нашел два пути, но не работаю.

insert = (
    "INSERT INTO ksiazka (ISBN, tytul, autor, rok_wydania, ilosc stron)"
    "VALUES (%s,%s,%s,%s,%s)"
)
dane = (ISBN, tytul, autor, rok_wydania, ilosc_stron)
cursor.execute(insert, dane)

или таким образом:

cursor.execute("INSERT INTO ksiazka (ISBN, tytul, autor, rok_wydania, ilosc stron) VALUES (%s,%s,%s,%s,%s)", (ISBN, tytul, autor, rok_wydania, ilosc_stron))

При выполнении я получаю эту ошибку:

Traceback (последний последний вызов): Файл "C:\Users\jakub\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\connection_cext.py", строка 377, в cmd_query raw_as_string = raw_as_string ) _mysql_connector.MySQLInterfaceError: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с "stron". VALUES ('12345678', 'wertvfdg', '3', '1243', '213') 'в строке 1

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (последний последний вызов): Файл "C: /Users/jakub/PycharmProjects/biblioteka/sql_connector.py", строка 57, в курсоре.execute(insert, dane) Файл "C:\Users\jakub\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\cursor_cext.py ", строка 264, в исполнении raw_as_string = self._raw_as_string) Файл" C:\Users\jakub\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\connection_cext.py ", строка 380, в cmd_query sqlstate = exc.sqlstate) mysql.connector.errors.ProgrammingError: 1064 (42000): У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с "stron". VALUES ('12345678', 'wertvfdg', '3', '1243', '213') 'в строке 1

Теги:
mariadb
insert

1 ответ

0
Лучший ответ

Если в названии столбца есть пробел, тогда ему нужна специальная обработка, и вы должны избегать этого:

INSERT INTO ksiazka (ISBN, tytul, autor, rok_wydania, 'ilosc stron') ...

Вот почему пробелы в именах столбцов раздражают и их следует избегать.

  • 1
    Будь я проклят! В имени этого столбца нет пробела, это должен быть ilosc_stron, я исправил, и он начал работать. Спасибо, что поймали это. Мой редактор подчеркивал все утверждение, и я не видел, что там не было _.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню