sql >> Databasteknik >  >> RDS >> Mysql

Infogar bildfil med PyQt5 i MySQL-databastabellkolumnen

Du bör inte sammanfoga variablerna för att bygga frågan, utan istället använda platshållarna, annars kommer din kod att vara mottaglig för SQL Injection-attacker. Å andra sidan måste du konvertera QPixmap, inte texten, till byte med en QBuffer som mellanhand:

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()



  1. Heroku migrerar inte modeller i Django

  2. Ska jag använda PreparedStatements för alla mina databasinlägg i Java?

  3. Entity Framework Oracle Timestamp

  4. MySQL Workbench Alternatives - ClusterControls Peka-och-klicka GUI