请教:node.js express mysql存储文章内容(html代码)代码报错

发布于 2022-09-07 15:33:33 字数 837 浏览 28 评论 0

**环境:
node.js express mysql**
问题:
mysql 插入文章数据时,存储文章详情内容时报错,如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'http://example.com/movies.json')
普通文本内容没问题,但里面出现"代码片段"好像就报错。
(是不是得怎么转译一下,求方法,刚接触node.js)
语法这么写得:

insert into article_list
          (title,author,summary,is_top,catalog_alias,content)
           values
            ('${req.body.title}',
            '${req.body.author}',
            '${req.body.summary}',
            '${req.body.is_top}',
            '${req.body.catalog_alias}',
            '${req.body.content}')`;

如图所示:
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不咬妳我踢妳 2022-09-14 15:33:33

不要直接拼接字符串,如果你的内容包括以下符号 ' -- [ ] 等 ,可能会报错,
例如本来你想查询 select * from table where name = '${var1}';, 如果你的变量var1 是 Mr.W'O,那么拼接后你的语句就变成了 select * from table where name = 'Mr.W'O'; 语句中出现了三个 ' 当然会报语法错误。 报错还是小事情,被黑客利用而进行sql注入就麻烦了。
建议你用node的模块mysql或mysql2 对变量进行编码,可能你的写法就变成了这样

var sql = `insert into article_list
          (title,author,summary,is_top,catalog_alias,content)
           values
            (?,?,?,?,?,?)`;
let result = mysql.query(sql, [req.body.title, req.body.author,req.body.summary,req.body.is_top])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文