Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на файл с изображение с PyQt5 в колоната на таблицата на базата данни на MySQL

Не трябва да свързвате променливите, за да изградите заявката, а по-скоро да използвате контейнерите, в противен случай вашият код ще бъде податлив на атаки чрез 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()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване на двоични данни в MySQL (без PreparedStatement)

  2. Проблем с условието WHERE в SQL

  3. MySQL поддържа ли историческа дата (като 1200)?

  4. mysql поставете два резултата заедно (един до друг)

  5. Минимален пример за използване на select... за актуализиране за изолиране на редове