如何使用Python执行数据库插入操作?
我在将数据插入数据库表时遇到问题。我正在使用Python和MariaDB。到数据库的连接是开放的并经过测试的,我可以查询数据库,但我不能确定插入语法。我找到了两种方法,但都不管用如何使用Python执行数据库插入操作?,python,mysql,insert,mariadb,Python,Mysql,Insert,Mariadb,我在将数据插入数据库表时遇到问题。我正在使用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, ilo
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))
执行时,我得到以下错误:
回溯(最近一次调用上次):文件
“C:\Users\jakub\AppData\Local\Programs\Python\36\lib\site packages\mysql\connector\connection\u cext.py”,
第377行,在cmd_查询中
原始字符串=原始字符串)
_mysql_connector.mysqlinterface错误:您的SQL语法有错误;检查与您的MariaDB服务器对应的手册
用于使用接近“stron”值的正确语法的版本
('12345678','wertvfdg','3','1243','213')在第1行
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用上次):文件
“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\u cext.py”,
第264行,执行中
raw\u as\u string=self.\u raw\u as\u string)文件“C:\Users\jakub\AppData\Local\Programs\Python\Python36\lib\site packages\mysql\connector\connection\u cext.py”,
第380行,在cmd_查询中
sqlstate=exc.sqlstate)mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;检查手册
对应于正确语法的MariaDB服务器版本
使用接近“stron”的值('12345678','wertvfdg','3','1243','213'),在
第1行
如果列名中有空格,则需要进行特殊处理,并且必须转义:
INSERT INTO ksiazka (ISBN, tytul, autor, rok_wydania, `ilosc stron`) ...
这就是为什么列名中的空格很烦人,应该避免使用。我会被诅咒的!该列名中没有空格,应该是ilosc_stron,我更正后,它开始工作。谢谢你的关注。我的编辑在整个声明的下面画了线,我没有看到没有。