आपको क्वेरी बनाने के लिए वेरिएबल्स को संयोजित नहीं करना चाहिए, बल्कि प्लेसहोल्डर्स का उपयोग करना चाहिए, अन्यथा आपका कोड SQL इंजेक्शन हमलों के लिए अतिसंवेदनशील होगा। दूसरी ओर, आपको QPixmap को एक मध्यस्थ के रूप में QBuffer का उपयोग करके, टेक्स्ट को नहीं, बाइट्स में बदलना होगा:
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()