下面是我在续集中用于不区分大小写的搜索的代码。但是,当用户要使用'_'和'%'搜索文本时,事实证明该sql将返回表中的所有记录,因为'_'和'%'是like子句中的通配符,因此需要进行转义。
where.text = sequelize.where(
sequelize.fn('LOWER', sequelize.col('text')),
{
$like: '%' + search_word.toLowerCase() + '%'
}
);
const result = await Table.findAndCountAll({
where
})
是否可以使用内置方法来解决此代码注入问题?我已经尝试过mysql.escape
,它不是为like子句创建的,并且不会转义'_'和'%'。