sql >> データベース >  >> RDS >> Mysql

MySQLデータベーステーブル列にPyQt5を含む画像ファイルを挿入する

    変数を連結してクエリを作成するのではなく、プレースホルダーを使用する必要があります。そうしないと、コードがSQLインジェクション攻撃を受けやすくなります。一方、QBufferを仲介として使用して、テキストではなくQPixmapをバイトに変換する必要があります。

    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. Sqoop:mysqlドライバーの例外を読み込めませんでした

    2. SQL Server 2016:常に暗号化されることによるパフォーマンスへの影響

    3. MySQLで動的ピボットテーブルを作成する方法

    4. HibernateでネイティブSQLを使用したバッチ挿入