Как выполнить вставку базы данных сделать MariaDB с помощью Python? - PullRequest
0 голосов
/ 17 мая 2018

У меня проблема с вставкой данных в таблицу базы данных. Я использую 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 (последний вызов был последним): File "C: \ Users \ Якуб \ AppData \ Local \ Programs \ Python \ Python36 \ Lib \ сайт-пакеты \ MySQL \ разъем \ connection_cext.py", строка 377, в cmd_query raw_as_string = raw_as_string) _mysql_connector.MySQLInterfaceError: у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашему серверу MariaDB версия правильного синтаксиса для использования около 'stron) ЗНАЧЕНИЯ ('12345678', 'wertvfdg', '3', '1243', '213') 'в строке 1

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

Traceback (последний вызов был последним): File «C: /Users/jakub/PycharmProjects/biblioteka/sql_connector.py», строка 57, в cursor.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

1 Ответ

0 голосов
/ 17 мая 2018

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

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

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

...