sql >> Databasteknik >  >> RDS >> Mysql

Stöder Python MySQL-förberedda uttalanden?

De flesta språk tillhandahåller ett sätt att göra generiska parametriserade uttalanden, Python är inte annorlunda. När en parametriserad fråga används kommer databaser som stöder att förbereda satser automatiskt att göra det.

I python ser en parameteriserad fråga ut så här:

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

Den specifika stilen för parametrering kan skilja sig beroende på din drivrutin, du kan importera din db-modul och sedan göra en print yourmodule.paramstyle .

Från PEP-249 :

paramstyle

       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'


  1. Använda PostgreSQL logisk replikering för att upprätthålla en alltid uppdaterad läs-/skriv-TEST-server

  2. MS SQL PÅ DELETE CASCADE flera främmande nycklar som pekar på samma tabell?

  3. SQL Server Update Databas Statistics

  4. 4 sätt att få SQL Server-jobbhistorik