Python MySQLdb: Abfrageparameter als benanntes Wörterbuch [geschlossen]

Ich möchte Abfrageparameter übergebencursor.execute() Methode vonMySQLdb als benanntes Wörterbuch, so dass sie sindentkam von SQL Injection.

Kannst du erklären, warum das so ist?KeyError:

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

MySQLdb Handbuchhttp://mysql-python.sourceforge.net/MySQLdb.html sagt:

Paramstyle

String-Konstante, die den Typ der von der Schnittstelle erwarteten Parametermarkenformatierung angibt. Einstellen'format' = ANSI-C-Printf-Formatcodes, z.'...WHERE name=%s'. Wenn ein Mapping-Objekt für verwendet wirdconn.execute(), dann nutzt die Schnittstelle tatsächlich'pyformat' = Erweiterte Python-Formatcodes, z.'...WHERE name=%(name)s'. Die API erlaubt derzeit jedoch nicht die Angabe von mehr als einem Stil in paramstyle.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage