Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan string .format() dalam pernyataan MySQL?

Menggunakan pernyataan yang telah disiapkan (cara aman):

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])

Menggunakan .format() yang membuat Anda berisiko terkena injeksi sql (jika Anda meneruskan input pengguna ke .format() mis.)

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loop rekursif MySql sql

  2. Bagaimana cara kerja penangguhan transaksi di MySQL?

  3. Arsip berita lanjutan Tahun/Bulan menggunakan PHP MySql

  4. SQL Pernyataan Pembaruan Bersarang Di Dalam Gabung Dalam

  5. Bagaimana cara mendapatkan nilai dari kueri mysql di luar pernyataan kueri?