Anda perlu membiarkan perpustakaan MySQL melakukan penanganan parameter untuk Anda; ini memiliki manfaat tambahan dengan membiarkan MySQL menyiapkan pernyataan Anda, membuat penyisipan berulang lebih cepat juga:
cur = con.cursor()
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', ?, ?, ?, ?, ?, 0, P, 0"
cur.execute(sql_input, (export_date, export_time, export_numtests, export_upstream, export_downstream))
Lihat Spesifikasi Python DB API 2.0
untuk (beberapa) detail lebih lanjut tentang SQL parametrized. Format parameter yang didukung persis didokumentasikan per adaptor database, jadi periksa juga. Modul MySQLdb, misalnya, meniru sintaks format string python, dan menggunakan %s
sebagai placeholder:
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', %s, %s, %s, %s, %s, 0, P, 0"
Opsi parameter lain yang memungkinkan adalah angka (:1, :2
, dll.), nama (:foo, :bar
) atau bentuk lain dari pemformatan string python, bernama penentu format:(%(foo)s, %(bar)s
).