Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python执行数据库插入操作?_Python_Mysql_Insert_Mariadb - Fatal编程技术网

如何使用Python执行数据库插入操作?

如何使用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

我在将数据插入数据库表时遇到问题。我正在使用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))
执行时,我得到以下错误:

回溯(最近一次调用上次):文件 “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,我更正后,它开始工作。谢谢你的关注。我的编辑在整个声明的下面画了线,我没有看到没有。