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

Bagaimana cara memperbarui mysql dengan python di mana bidang dan entri berasal dari kamus?

Anda tidak ingin menempatkan nilai literal dalam menggunakan interpolasi string - serangan injeksi SQL bukan Hal yang Baik(tm) . Sebagai gantinya, Anda menggunakan sintaks placeholder yang relevan untuk database Anda (saya pikir MySQL adalah '%s').

Catatan:Saya menggunakan .format di sini, ubah untuk menggunakan % jika Anda mau, tetapi lepas dari % apa pun

d = {'col1': 'val1', 'col2': 'val2'}
sql = 'UPDATE table SET {}'.format(', '.join('{}=%s'.format(k) for k in d))
print sql
# 'UPDATE table SET col2=%s, col1=%s'

Dengan asumsi cur adalah kursor DB cara yang benar untuk melakukan kueri adalah:

cur.execute(sql, d.values())

Ini berfungsi karena meskipun pemesanan kamus secara efektif merupakan urutan arbitrer, urutan kunci/nilai dari dict akan konsisten sehingga dict(zip(d.keys(), d.values())) == d .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ld:perpustakaan tidak ditemukan untuk -lzstd saat bundel menginstal untuk permata mysql2 Ruby di macOS Big Sur 11.4

  2. Bagaimana saya bisa mendekripsi kata sandi MySQL?

  3. Kelompokkan berdasarkan tahun di bidang tanggal di MySQL

  4. Jajak pendapat lama dalam obrolan Laravel:Mengapa div tidak memperbarui dirinya sendiri?

  5. Menghapus panggilan basis data Node