编程错误:1054(42s22):“field list”中的未知列“lucas\u johnson”

jjhzyzn0  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(350)

我正在尝试插入mysql数据库,但它给了我一个错误:

ProgrammingError: 1054 (42S22): Unknown column 'Lucas_Johnson' in 'field list'

命令是:

c.execute("INSERT INTO master (ID, Name, Location, DateTime, Status, flagged) VALUES("+str(id)+","+str(name)+","+place+","+date.replace(':','-').replace(' ', '_')+", 'Out', "+str(flagged)+")")
vq8itlhq

vq8itlhq1#

这是因为sql字符串中缺少正确的引号。您可以在执行字符串之前打印它,然后就可以看到它了。
但是你没有用正确的方法去做。这样,您就可以以一种非常易于sql注入的方式来编写sql字符串。
正确的方法是

c.execute("INSERT INTO master (ID, Name, Location, DateTime, Status, flagged) VALUES(%s, %s, %s, %s, %s, %s)", (id, name, place, date.replace(':','-').replace(' ', '_'), 'Out', flagged)

相关问题