Anda tidak boleh menggabungkan variabel untuk membangun kueri, melainkan menggunakan placeholder, jika tidak, kode Anda akan rentan terhadap serangan SQL Injection. Di sisi lain, Anda harus mengonversi QPixmap, bukan teks, menjadi byte menggunakan QBuffer sebagai perantara:
con = MySQLdb.connect(host="localhost", user="root", password="", database="somedb")
with con:
cur = con.cursor()
name = self.ui.name_edit.text()
buff = QBuffer()
buff.open(QIODevice.WriteOnly)
pixmap = QPixmap(self.ui.image_label.pixmap())
pixmap.save(buff, "PNG")
binary_img = buff.data().toBase64().data()
cur.execute("INSERT INTO persons(name, photo) VALUES (%s, %s)", (name, binary_img))
con.commit()