我试图通过python中的mysqldb模块执行以下查询:
for self in your.p.parameter_type: cursor.execute(“”“UPDATE参数SET%s =%s WHERE parameter_set_name =%s”“”%(i, float(getattr(self.p,i)),self.list_box_parameter.GetStringSelection()))
我一直收到错误:“'where子句'中的未知列'M1'”。我想使用值getattr(self.p,i)更新列i,但仅限于列parameter_set_name等于self.list_box_parameter.GetStringSelection()的行。该错误表明我的查询在WHERE子句中按名称“M1”查找列。为什么上述查询不正确,我该如何纠正?
答案 0 :(得分:1)
我现在看到,我认为你需要在引号中包含parameter_set_name =%s,例如:
parameter_set_name = "%s"
否则它试图访问列M1
这样:
cursor.execute("""UPDATE parameters SET %s = %s WHERE parameter_set_name = \"%s\" """ % (i, float(getattr(self.p, i)), self.list_box_parameter.GetStringSelection()))
答案 1 :(得分:0)
看起来查询是用错误的语法形成的。 你能显示cursor.execute的字符串参数吗?