# 今天需要用Python实现将图片导入MySQL数据库。看了看网上的一些写法,自己也过一遍,记录下来,以防忘记。
# 功能:将图片导入到MySQL数据库
import sys
import pymysql
from PIL import Image
import os
path = "./"
#读取图片文件
fp = open("./陈丹江-420381198212068517.JPG", 'rb')
img = fp.read()
fp.close()
#建立一个MySQL连接
database = pymysql.connect(host="10.31.143.6", user="root", passwd="******", db="aaa", charset='utf8')
# 存入图片
# 创建游标
cursor = database.cursor()
#注意使用Binary()函数来指定存储的是二进制
sql = "INSERT INTO vbp_person_ext (person_id, image, img_type) VALUES (%s, %s, %s);"
args = ('39', img, 'JPG')
cursor.execute(sql, args)
database.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
database.close()
print("============")
print("Done! ")
数据库表 vbp_person_ext 包含三个字段:person_id, image, img_type(image是图片信息)
【过程中遇到问题】
报错:UnicodeEncodeError: 'latin-1' codec can't encode characters in position 303-304: ordinal not in range(256)
解决:增加 charset='utf8
database = pymysql.connect(host="10.31.143.6", user="root", passwd="******", db="aaa", charset='utf8')
参考文档:https://blog.csdn.net/pandarawen/article/details/8339414