Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在将缓冲区数组插入mysql,但其包含无效字符_Javascript_Mysql_Reactjs_Buffer_Invalid Characters - Fatal编程技术网

Javascript 正在将缓冲区数组插入mysql,但其包含无效字符

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

我正在尝试使用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 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()
})