Saya mencoba memasukkan beberapa variabel ke dalam database MySQL menggunakan python. Terkadang variabelnya berupa string dan terkadang tidak ada.
Versi yang sangat disederhanakan dari apa yang saya coba ada di bawah:
import MySQLdb as mdb
f = "Bob"
m = None
l = "Smith"
db = mdb.connect("blah blah blah")
with db:
cur.execute("INSERT INTO name (first, middle, last) VALUES ('{0}', '{1}', '{2}')".format(f, m, l))
Masalahnya adalah ia memasukkan 'Tidak Ada' sebagai string, bukan sebagai nilai NULL sebenarnya.
Saya dapat mengatasi masalah ini dengan mengubah baris terakhir menjadi:
cur.execute("INSERT INTO name (first, middle, last) VALUES (%s, %s, %s)", (f, m, l))
tapi saya yakin ini membuat kode rentan terhadap serangan injeksi MySQL. Jika ada yang tahu cara yang benar menggunakan metode .format saya akan sangat berterima kasih.