Trouble with MySQL UPDATE syntax with the module mysqldb in Python
I am attempting to execute the following query via the mysqldb module in python:
for i in self.p.parameter_type: cursor.execute("""UPDATE parameters SET %s = %s WHERE parameter_set_name = %s""" % (i, float(getattr(self.p, i)), self.list_box_parameter.GetStringSelection()))
I keep getting the error: "Unknown column 'M1' in 'where clause'". I want to update columns i with the value getattr(self.p, i), but only in rows that have the column parameter_set_name equal to self.list_box_parameter.GetStringSelection(). The error suggests that my query is looking for columns by the name 'M1' in the WHERE clause. Why is the above开发者_StackOverflow中文版 query incorrect and how can I correct it?
i see now, i think you need to enclose parameter_set_name = %s in quotes such as:
parameter_set_name = "%s"
otherwise it's trying to acces column M1
so:
cursor.execute("""UPDATE parameters SET %s = %s WHERE parameter_set_name = \"%s\" """ % (i, float(getattr(self.p, i)), self.list_box_parameter.GetStringSelection()))
It looks like query is formed with wrong syntax. Could you display string parameter of cursor.execute?
精彩评论