Bạn không nên nối các biến để tạo truy vấn mà nên sử dụng các trình giữ chỗ, nếu không mã của bạn sẽ dễ bị tấn công SQL Injection. Mặt khác, bạn phải chuyển đổi QPixmap, không phải văn bản, thành byte bằng cách sử dụng QBuffer làm trung gian:
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()