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