sql >> Database teknologi >  >> RDS >> Mysql

Indsættelse af billedfil med PyQt5 i MySQL-databasetabelkolonnen

Du bør ikke sammenkæde variablerne for at bygge forespørgslen, men i stedet bruge pladsholderne, ellers vil din kode være modtagelig for SQL Injection-angreb. På den anden side skal du konvertere QPixmap, ikke teksten, til bytes ved hjælp af en QBuffer som mellemled:

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. mysql cte. bruger med og indsæt det advarer om en syntaksfejl

  2. MySql UTF-kodning

  3. JSON_SET() vs JSON_INSERT() vs JSON_REPLACE() i MySQL:Hvad er forskellen?

  4. Sådan opretter du triggere i Codeigniters migrationsbibliotek