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

Kesalahan Python MySQLdb - apa yang menyebabkan ini

Kode Anda untuk membuat kueri tidak mencoba mengutip nilai string:

cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"

Lihat pernyataan SQL yang Anda cetak:

INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)

Bukankah "kategori" harus dikutip?

Anda seharusnya tidak membuat pernyataan SQL dengan operasi string sejak awal. Ini adalah bagaimana kerentanan injeksi SQL terjadi. Sebagai gantinya, Anda harus menggunakan placeholder dan membiarkan perpustakaan MySQL menanganinya:

c.execute(
    "INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)", 
    (key, value, timestamp)
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tanggal sistem reservasi

  2. Kueri agregat MongoDB vs. MySQL SELECT field1 FROM table

  3. Bagaimana menemukan semua hubungan antara semua tabel mysql?

  4. Grup produk kumulatif MySQL oleh

  5. Panduan langkah demi langkah Yii2 tentang login dari tabel di MySQL