Javascript BLOB MYSQL的数据损坏缓冲区

Javascript BLOB MYSQL的数据损坏缓冲区,javascript,mysql,node.js,api,nginx,Javascript,Mysql,Node.js,Api,Nginx,使用NodeJs,我尝试在我的MySQL LONGBLOB中上传一个缓冲区(图像),该缓冲区是由我的应用程序的一个帖子发送的,我在我的脚本中很好地接收到它,但是当我将它插入我的表中时,我没有与我拥有的数据相同的数据 你能解释一下为什么吗 var query=“插入分类(nom_category)”; //场 if(req.body.def_categorie)查询+=“,def_categorie”; if(req.body.idplat)查询+=“,idplat”; if(req.body.

使用NodeJs,我尝试在我的MySQL LONGBLOB中上传一个缓冲区(图像),该缓冲区是由我的应用程序的一个帖子发送的,我在我的脚本中很好地接收到它,但是当我将它插入我的表中时,我没有与我拥有的数据相同的数据

你能解释一下为什么吗

var query=“插入分类(nom_category)”;
//场
if(req.body.def_categorie)查询+=“,def_categorie”;
if(req.body.idplat)查询+=“,idplat”;
if(req.body.idmenu)查询+=“,idmenu”;
如果(请求正文图像分类)查询+=“,图像分类”;
查询+=”;
查询+=”值(“+pool.escape(req.body.nom_categorie));
//价值观
if(req.body.def_分类)query+=“,”+pool.escape(req.body.def_分类);
if(req.body.idplat)query+=“,”+pool.escape(req.body.idplat);
if(req.body.idmenu)query+=“,”+pool.escape(req.body.idmenu);
if(req.body.image\u categorie)查询+=”,“+Buffer.from(req.body.image\u categorie,“utf8”);
查询+=”;
查询(查询,null,函数(err,results){
如果(错误){
pool.end();
资源状态(500)。发送(错误);
}否则{
pool.end();
res.header(“访问控制允许原点”、“*”);
res.header(“访问控制允许头”、“来源、X请求、内容类型、接受”);
res.send(结果);
}

})
我发现了我的问题,我只是用BASE64对数据进行编码,然后用URLENCODE对其进行再次编码。当你从数据库中提取文件时,这可能只是一个编码问题。你能从中创建一个有效的PNG吗?谢谢你的回答,不,我不能,我试图用六进制翻译它,所有特殊字符都是不同的…您应该使用参数化查询,而不是使用
pool.escape()
组合查询。这样,您就可以让数据库驱动程序对BLOB执行正确的操作,这是您的问题所在。这不是一个好的解决方案。您现在使用BLOB(二进制)列存储文本数据。那么我该怎么办?