sql >> Database >  >> RDS >> Mysql

Afbeeldingsbestand invoegen met PyQt5 in de MySQL-databasetabelkolom

U moet de variabelen niet aaneenschakelen om de query op te bouwen, maar eerder de tijdelijke aanduidingen gebruiken, anders is uw code vatbaar voor SQL-injectie-aanvallen. Aan de andere kant moet u de QPixmap, niet de tekst, converteren naar bytes met behulp van een QBuffer als tussenpersoon:

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. Hoe u uw MySQL- en MariaDB-back-ups kunt versleutelen

  2. SQL-query om productverkopen per maand te vergelijken

  3. Kan geen tabel maken (errno:150) op FOREIGN KEY

  4. Hoe haal je de algemeen meest populaire tags uit genormaliseerde tabellen?