Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unterstützt Python vorbereitete MySQL-Anweisungen?

Die meisten Sprachen bieten eine Möglichkeit, generische parametrisierte Anweisungen zu machen, Python ist nicht anders. Wenn eine parametrisierte Abfrage verwendet wird, tun Datenbanken, die das Vorbereiten von Anweisungen unterstützen, dies automatisch.

In Python sieht eine parametrisierte Abfrage so aus:

cursor.execute("SELECT FROM tablename WHERE fieldname = %s", [value])

Der spezifische Stil der Parametrisierung kann je nach Treiber unterschiedlich sein, Sie können Ihr db-Modul importieren und dann einen print yourmodule.paramstyle ausführen .

Von PEP-249 :

Parameterstil

       String constant stating the type of parameter marker
       formatting expected by the interface. Possible values are
       [2]:

           'qmark'         Question mark style, 
                           e.g. '...WHERE name=?'
           'numeric'       Numeric, positional style, 
                           e.g. '...WHERE name=:1'
           'named'         Named style, 
                           e.g. '...WHERE name=:name'
           'format'        ANSI C printf format codes, 
                           e.g. '...WHERE name=%s'
           'pyformat'      Python extended format codes, 
                           e.g. '...WHERE name=%(name)s'