Javascript 正在将缓冲区数组插入mysql,但其包含无效字符
我正在尝试使用React.js将图像插入mysql表。MySQL表由3列组成;设备:String,名称:String,图像:longBlob。映像可能需要不同的数据类型?我已经在我的React应用程序中正确地检索了作为缓冲区的图像,数据在React应用程序中看起来像这样Javascript 正在将缓冲区数组插入mysql,但其包含无效字符,javascript,mysql,reactjs,buffer,invalid-characters,Javascript,Mysql,Reactjs,Buffer,Invalid Characters,我正在尝试使用React.js将图像插入mysql表。MySQL表由3列组成;设备:String,名称:String,图像:longBlob。映像可能需要不同的数据类型?我已经在我的React应用程序中正确地检索了作为缓冲区的图像,数据在React应用程序中看起来像这样 <Buffer ff d8 ff e1 02 b7 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 09 01 03 00 03 00 00 00 01 00 06 00 00
<Buffer ff d8 ff e1 02 b7 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 09 01 03
00 03 00 00 00 01 00 06 00 00 01 00 00 04 00 00 00 01 00 00 02 a3 01 10 00 02 ... 57470 more bytes>
数据变量改变了形式,并且有许多无效字符,如{、[、和$。当缓冲区有这些字符时,如何正确地插入它
如果我将sql语句打印到控制台,它看起来像这样
UPDATE deviceImage SET name='006.JPEG', data='����☻�ExifMM* ☺♥♥☺♠☺♦☺☻�☺►☻ ♥�☺☼�☺1☻♫��i♦☺�☺↕♦☺☺2☻¶�SM-G970UsamsungG970USQU5GUCG2021:05:23 18:51:06§�☻♣☺☺��☻☺��♦
☺☺��"♥☺☻�☺♥☺☺� ☻♀☺Ē♣♣☺☺Ј'♥☺☺@�♣♥☺→�♥
☺☺ؐ♥☻¶☺�♦♣☺☺��♥♥☺�♦☻¶☺��♥☺☻�☻♥☺�
♣☺☻►��♣☺☻↑� ♥☺♥☺��♣☺☻ td0220dL12XLLD00SM�d......
因此,数据变量从缓冲区数组进入这个东西,它有无效的字符。这花了我一点时间才找到,但答案是在我的sql查询中简单地避免字符串连接,这是无论如何都不应该做的。下面是解决我问题的正确查询
let sql = "UPDATE deviceImage SET name=?, image=? WHERE device='000209'"
dbUser.query(sql, [name, data], (err, result) => {
res.send(result)
res.end()
})
let sql = "UPDATE deviceImage SET name=?, image=? WHERE device='000209'"
dbUser.query(sql, [name, data], (err, result) => {
res.send(result)
res.end()
})