mysql中使用load_file函数实现Blob字段图片数据更改

需求:替换数据库中的图片文件,字段为blob格式


最终只需要一条sql命令:
update charge set img = load_file('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/2.png');


先说一下踩的坑:
1、之前不知道此函数,直接用replace函数,第三个参数为文件绝对路径;
update charge set img= replace(img,'*',NULL);

2、用Python将图片文件转成二进制,使用下面语法:

sql ="update charge set img= fimg where phonenum != NULL"

变量fimg就是打开的图片文件二进制格式,由于是在sql语句中,且格式问题复杂,参数的传递问题暂时没法解决。

3、load_file函数,不知道文件路径有要求,浪费了一段时间。

检查文件存不存在语法:

SELECT LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/2.png') AS RESULT;

一开始我的文件是放在桌面的,因此一直无效。

上传之前你需要检查一下两点:
首先是文件大小是否小于允许的最大字节。

show variables like 'max_allowed_packet';
在这里插入图片描述
其次,需要查看允许上传文件的目录。

show variables like 'secure_file_priv';
在这里插入图片描述
所以,只有将文件放置在上述目录中才能成功读取到,最后用命令:
update charge set img = load_file('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/2.png');
`
完成文件上传,注意斜杠方向,至此成功将表charge中的img字段(Blob格式)全部改成上述路径图片。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值