sql >> Database >  >> RDS >> Mysql

Hoe gebruik ik een .format()-tekenreeks in een MySQL-instructie?

Voorbereide verklaringen gebruiken (veilige manier):

qry = """
    SELECT *
    FROM db
    WHERE run_start_date BETWEEN '%s 16:00:00' AND '%s 16:00:00'
""" # 

today = DT.date.today()
week_ago = today - DT.timedelta(days=7)
today = str(today.strftime('%Y-%m-%d'))  # Convert to string
week_ago = str(week_ago.strftime('%Y-%m-%d'))  # Convert to string

cursor.execute(qry, [today, week_ago])

Gebruik van .format() waardoor u risico loopt op sql-injecties (als u gebruikersinvoer doorgeeft aan bijvoorbeeld .format())

qry = """
    SELECT *
    FROM db
    WHERE run_start_date BETWEEN '{today} 16:00:00' AND '{week_ago} 16:00:00'
""" # Use named placeholders, nicer to read, prevents you having to repeat variables multiple time when calling .format()

today = DT.date.today()
week_ago = today - DT.timedelta(days=7)
today = str(today.strftime('%Y-%m-%d'))  # Convert to string
week_ago = str(week_ago.strftime('%Y-%m-%d'))  # Convert to string

qry = qry.format(today=today, week_ago=week_ago)
cursor.execute(qry)



  1. 5 snelle handige tips voor SQL Server Production DBA's

  2. Fout bij het ophalen van tekst voor fout ORA-01804

  3. Aparte verschillende versie van een website

  4. MYSQL dubbele sleutel werkt niet