sql >> Database teknologi >  >> RDS >> Mysql

mysqldb python undslipper? eller %s?

For at være mere specifik ... cursor.execute() metoden tager et valgfrit argument, som indeholder værdier, der skal citeres og interpoleres i SQL-skabelonen/-sætningen. Dette gøres IKKE med en simpel % operatør! cursor.execute(some_sql, some_params) er IKKE det samme som cursor.execute(some_sql % some_params)

Python DB-API specificerer, at enhver kompatibel driver/modul skal give en .paramstyle attribut, som kan være en hvilken som helst af 'qmark', 'numeric', 'named', 'format' eller 'pyformat' ... så man i teorien kunne tilpasse dine SQL-forespørgselsstrenge til den understøttede form gennem introspektion og en lidt munding. Dette burde stadig være sikrere end selv at prøve at citere og interpolere værdier i dine SQL-strenge.

Jeg var særligt underholdt af at læse Advarsel Brug aldrig, aldrig, ALDRIG Python streng ... interpolation ... Ikke engang ved våben. i PsycoPG-dokumenterne.



  1. Hvordan får jeg antallet af rækker berørt med SQL Alchemy?

  2. omskriv ?id=__ til sidetitel gemt i db række

  3. Sådan eksporteres forespørgselsresultat til .csv eller tabulatorsepareret fil i SQL Server Management Studio(SSMS) - SQL Server / TSQL Selvstudium Del 23

  4. Sådan genererer du versalfølsomme kolonner med JPA i MySQL automatisk