mysql 存markdown文章_如何在 mysql 中保存 markdown 文本

我想自己搭建一个博客系统,使用 markdown 来写博客,就像思否的编辑器。

我的存储思路是同时保存我的 markdown 源文本和html,html用于在前端显示,源文本用来在更新博客时调取接口使用。

在保存进数据库的时候我遇到了一个问题—- markdown 源文本在 sql 语句中报错

Error: ER_PARSE_ERROR: 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 'T', ' ')

}

time() // "2020-05-09 18:25:54"

我知道是反引号和单引号的问题,但是不知道该如何解决,google了半天没有找到解决方案

我的接口参数

4fb8c527aafe67bac6a872adacb2613f.png

后台 node 接口

dd7e7a468c456e71f34c23a3dd9ae29b.png

存储进 mysql 的语句

6483d63e9ea29d36af2d78ecf75c0c1f.png

请教各位!!!

我是不是应该使用某个库来转义,或者使用另一种 sql 语句

回答

是的,最常见的你可以用ORM库来操作数据库(比如 sequelize),这样不仅避免了手写 SQL 语句的繁琐,还可以忽略掉转义和注入的安全风险。

当然如果你要手写 SQL,也可以用诸如 mysql2 这类库里自带的占位符 ? 来处理插入语句。

mysql.query('INSERT INTO blogs SET ?', {

title: xss(postData.title),

content: xss(postData.content),

html: xss(postData.html),

author: postData.author,

createtime: Date.now()

});

具体的使用看文档吧,另外下次提问的时候请尽量不要直接截图代码,而是把代码贴出来。这样方便回答者在调试的时候直接复制你的代码,而不是照着图片一个字一个字的去敲。

你这么直接拼 SQL 不怕注入么……

参数化啊。


版权声明:本文为weixin_36123682原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。