Stačí předat parametry dotazu jako druhý argument pro execute
, jako:
>>> cur.execute(
... """INSERT INTO some_table (an_int, a_date, a_string)
... VALUES (%s, %s, %s);""",
... (10, datetime.date(2005, 11, 18), "O'Reilly"))
Poté budou všechny parametry správně zakódovány.
Důvodem je psycopg2
dodržuje Specifikaci rozhraní API databáze Python v2.0
a podporuje bezpečné parametrizované dotazy.
Viz také:
- Parametrizované dotazy pomocí psycopg2 / Python DB-API a PostgreSQL
- psycopg2 ekvivalent mysqldb.escape_string?