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.