在数据库表中插入数据时遇到问题。我用的是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(最近一次调用last):文件“c:\users\jakub\appdata\local\programs\python36\lib\site packages\mysql\connector\connection\cext.py”,第377行,在cmd\u query raw\u as\u string=raw\u as\u string)\u mysql\u connector.mysqlinterfaceerror:您的sql语法有错误;请查看与您的mariadb服务器版本对应的手册,以了解在第1行使用“stron”值('12345678','wertvfdg','3','1243','213')附近的正确语法
在处理上述异常时,发生了另一个异常:
traceback(最近一次调用last):文件“c:/users/jakub/pycharmprojects/biblioteka/sql\u 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行,在执行原始\u as \u string=self.\u raw \u as \u string)文件“c:\users\jakub\appdata\local\programs\python36\lib\site packages\mysql\connector\connection \u cext.py”的第380行,在cmd \u query sqlstate=exc.sqlstate)mysql.connector.errors.programmingerror:1064(42000):您的sql语法有错误;请查看与您的mariadb服务器版本对应的手册,以了解在第1行使用“stron”值('12345678','wertvfdg','3','1243','213')附近的正确语法
1条答案
按热度按时间4nkexdtk1#
如果列名中有空格,则需要进行特殊处理,必须对其进行转义:
这就是为什么列名中的空格很烦人,应该避免。