Název databáze (ani názvy sloupců nebo tabulek) nejsou datové hodnoty, a proto nejsou vhodným použitím zástupných symbolů. chtít to udělat je obvykle špatné znamení; pouze DBA by měl být schopen vydat create database
, protože to vyžaduje určitá značná privilegia. Většina aplikací vyžaduje, aby DBA vydal databázi pro vytvoření a poté vzal vytvořenou databázi jako parametr, který bude použit v argumentech pro dbapi.Connection.
Pokud jste si jisti, že to potřebujete, důvěřujete zdroji vstupu a zkontrolovali jste vstup, zda neobsahuje neplatné znaky, provedli byste náhradu v pythonu, něco jako:
def createDB(dbConn, dbName):
c = dbConn.cursor()
query = """CREATE DATABASE %s;""" % dbName
c.execute(query)