Python MySQLdb: запрос параметров в виде именованного словаря [закрыто]

Я хочу передать параметры запросаcursor.execute() методMySQLdb как именованный словарь, так что ониспасся из SQL-инъекции.

Можете ли вы объяснить, почему это даетKeyError:

>>> c.execute('select id from users where username=%(user)s', {'user':'bob',})
KeyError: 'user'

MySQLdb руководствоhttp://mysql-python.sourceforge.net/MySQLdb.html говорит:

paramstyle

Строковая константа, указывающая тип форматирования маркера параметра, ожидаемого интерфейсом. Установлен в'format' = Коды формата ANSI C printf, например,'...WHERE name=%s', Если объект отображения используется дляconn.execute()то интерфейс фактически использует'pyformat' = Коды расширенного формата Python, например'...WHERE name=%(name)s', Однако API в настоящее время не позволяет задавать более одного стиля в paramstyle.

Ответы на вопрос(2)

Ваш ответ на вопрос