Skutečnost, že MySQLPython používá standardní značku formátu řetězce ("%") pro zástupné symboly proměnných v dotazech, může být matoucí.
Zástupný symbol pro dotazy v db-api pythonu je pro hodnoty používá se v where
klauzule a insert
a update
příkazy a jsou správně upraveny / escapovány / citovány db-api, aby se zabránilo vkládání SQL atd. Neměly by být použity pro názvy tabulek nebo polí.
Zde tedy chcete vytvořit dotaz pomocí formátování řetězce:
sql = 'SHOW TABLES FROM %s;' % (db_name[0],)
cursor.execute(sql)
Od db_name[0]
pochází z důvěryhodného zdroje, není zde žádný bezpečnostní problém.