Проблема с синтаксисом UPDATE MySQL с модулем mysqldb в Python - PullRequest
0 голосов
/ 31 января 2010

Я пытаюсь выполнить следующий запрос через модуль mysqldb в python:

для i в self.p.parameter_type: cursor.execute ("" "ПАРАМЕТРЫ ОБНОВЛЕНИЯ SET% s =% s ГДЕ параметр_set_name =% s" ""% (i, float (getattr (self.p, i)), self.list_box_parameter.GetStringSelection ()))

Я получаю сообщение об ошибке: «Неизвестный столбец« M1 »в« предложении где »». Я хочу обновить столбцы i значением getattr (self.p, i), но только в строках, у которых столбец имя_параметра имя_символа равно self.list_box_parameter.GetStringSelection () Ошибка предполагает, что мой запрос ищет столбцы с именем «M1» в предложении WHERE. Почему приведенный выше запрос неверен и как я могу его исправить?

Ответы [ 2 ]

1 голос
/ 31 января 2010

Теперь я вижу, я думаю, вам нужно заключить в кавычки параметр_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()))
0 голосов
/ 31 января 2010

Похоже, запрос сформирован с неверным синтаксисом. Не могли бы вы отобразить строковый параметр cursor.execute?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...