这个问题在这里已经有答案了:
如何在python的sql语句中使用变量(6个答案)
mysql参数化查询(7个答案)
两年前关门了。
编辑=>问题解决:我把我的查询改成了这个,现在它可以工作了。谢谢你,雅尔:
query_update = ("UPDATE comments SET label = '%s' WHERE id = %s"%(new_label, id))
我正在做一个学校项目,通过flask应用程序中的一个表单来更新mysql数据库。
当我运行查询将列更新为整数时,它可以工作,但是当我的查询是字符串时,它就不能工作。
我只知道一点mysql,更不知道mysql workench。
提前感谢。
这是我的密码:
cur_update = cnx.cursor(buffered=True)
# working
query_update = ("UPDATE comments SET label = %s WHERE id = %s"%(1, id))
# working
query_update = ("UPDATE comments SET label = %s WHERE id = %s"%("1", id))
# not working
query_update = ("UPDATE comments SET label = %s WHERE id = %s"%("test", id))
# returing the following error
mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column 'test'
in 'field list'
cur_update.execute(query_update)
cnx.commit()
cur_update.close()
cnx.close()
我为concern列尝试了几种数据类型,但每种类型都返回相同的错误。
2条答案
按热度按时间rbl8hiat1#
引用一下。字符串值必须在sql中引用
请注意单引号前后的价值。
顺便说一下。这样做是不安全的。使用带绑定参数的准备语句。
zaqlnxep2#
sql查询通常要求字符串用单引号括起来。
update语句的计算结果如下:
自
test
不在引号中,sql希望它是列的名称。在值周围加上引号,它就会起作用: