使用Python中的模块mysqldb解决MySQL UPDATE语法问题

时间:2010-01-31 08:45:44

标签: python mysql

我试图通过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”查找列。为什么上述查询不正确,我该如何纠正?

2 个答案:

答案 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的字符串参数吗?