python - 我尝试在 Python 中将 blob 文件插入 MySQL 数据库,但不断收到 mysql.connector.errors.ProgrammingError: 1064 (42000)
问题描述
尝试将 blob 文件插入 MySQL 数据库时,出现错误。这是我的代码示例:
@pyqtSlot()
def on_click(self):
file_name = QFileDialog.getOpenFileName(self, 'Open File', 'c:\\', 'Image Files (*.png *.jpg *gif)')
image_path = file_name[0]
self.converttobinary(image_path)
def converttobinary(self, filename):
with open(filename, 'rb') as file:
binarydata = file.read()
mycursor.execute("INSERT INTO imagestore (imgg) VALUES(%s)" % (binarydata))
mydb.commit()
print("image file inserted succesfully")
但是,当我运行代码时,我不断得到:
mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\xd9\x00\x00\x01 附近使用的正确语法\x11\x08\x06\x00' 在第 1 行
解决方案
引用列的值:
mycursor.execute("INSERT INTO imagestore (imgg) VALUES('%s')" % (binarydata))
推荐阅读
- python-3.x - Python 请求 - org.apache.struts.taglib.html.TOKEN 问题
- java - 在 ZK 中打开外部应用程序和网页
- data-structures - 调整地图大小的成本是多少?
- xml - XML,XSLT 按标题与子节点对相同元素进行分组
- mysql - 如何优化主页新闻提要上的 mysql 查询以获得快速结果?
- javascript - 替换或删除查询字符串 javascript
- javascript - ReferenceError:文档发生了使用外部 js 脚本的尝试
- vue.js - VueX Getter 从数组中过滤唯一 id
- azure - Azure - 将 Web 作业从 ASE 迁移到 Kubernetes (AKS) 的迁移选项
- android - 永久模糊更改位图