Nazwa bazy danych (ani nazwy kolumn lub tabel) nie są wartościami danych, a zatem nie są odpowiednim zastosowaniem symboli zastępczych. chęć zrobienia tego jest zwykle złym znakiem; tylko administrator DBA powinien być w stanie wydać create database
, ponieważ wymaga to pewnych znacznych przywilejów. Większość aplikacji wymaga, aby DBA wydał utworzenie bazy danych, a następnie przyjął utworzoną bazę danych jako parametr do użycia w argumentach do dbapi.Connection.
Jeśli jesteś pewien, że tego potrzebujesz, ufasz źródłu danych wejściowych i sprawdziłeś dane wejściowe pod kątem nieprawidłowych znaków, po prostu dokonaj zamiany w pythonie, coś takiego:
def createDB(dbConn, dbName):
c = dbConn.cursor()
query = """CREATE DATABASE %s;""" % dbName
c.execute(query)