sql >> Databasteknik >  >> RDS >> Mysql

Finns det något säkert sätt att parametrisera databasnamn i MySQL-frågor?

Ett databasnamn (inte heller kolumn- eller tabellnamn) är inte datavärden och är därför inte en lämplig användning av platshållare. att vilja göra detta är vanligtvis ett dåligt tecken; endast DBA ska kunna utfärda en create database , eftersom att göra det kräver några betydande privilegier. De flesta applikationer kräver att DBA utfärdar skapa databasen och tar sedan den skapade databasen som en parameter som ska användas i argumenten till dbapi.Connection.

Om du är säker på att du behöver detta, litar du på källan till inmatningen och du har kontrollerat inmatningen för ogiltiga tecken, du skulle bara göra ersättningen i python, ungefär:

def createDB(dbConn, dbName):
    c = dbConn.cursor()
    query = """CREATE DATABASE %s;""" % dbName
    c.execute(query)


  1. 4 sätt att kontrollera en kolumns datatyp i MariaDB

  2. Vikten av backtick runt tabellnamnet i MySQL-frågan

  3. Hur tar man bort ett enumtypvärde i postgres?

  4. Vad representerar en dubbel i sql-server?