在sql中模糊查询的语句为:
select * from 表名 where 字段名 like '%e%';
错误的写法:
r.get('/sp/:tit',(req,res,next)=>{
console.log(req.params);
var mz=req.params.tit;
pool.query('select * from sp where tit like '%?%' ',[mz],(err,a)=>{
if(err){
next(err);
return;
}
//a代表SQL命令执行成功
console.log(a);
//结果是数组,如果是空数组用户不存在,否则查询成功
if(a.length===0){
res.send({code:501,msg:'该商品不存在'})
}else{
res.send({code:200,msg:'查询成功',data:a})
}
})
});
正确的写法:
r.get('/sp/:tit',(req,res,next)=>{
//获取get传递的参数
console.log(req.params);
var mz="%"+req.params.tit+"%";
pool.query('select * from sp where tit like ? ',[mz],(err,a)=>{
if(err){
next(err);
return;
}
//a代表SQL命令执行成功
console.log(a);
//结果是数组,如果是空数组用户不存在,否则查询成功
if(a.length===0){
res.send({code:501,msg:'该商品不存在'})
}else{
res.send({code:200,msg:'查询成功',data:a})
}
})
});
注意需要将%和获取的内容拼接再保存到声明的变量中。
本文介绍了在SQL中进行模糊查询的正确方法,强调了在使用LIKE操作符时,如何安全地拼接用户输入以防止SQL注入。示例中展示了错误的写法,即直接将用户参数插入SQL语句,以及正确的做法,即使用占位符并预处理参数,确保查询的安全性。
324

被折叠的 条评论
为什么被折叠?



