使用nodejs和has和api接收条件,但是当我绑定查询中的条件不起作用时,查询就是这个
SELECT id_comercio, nombre, nit, email FROM coma_comercios WHERE nombre LIKE "%?%"
但数据库正以这种方式重现
SELECT id_comercio, nombre, nit, email FROM coma_comercios WHERE nombre LIKE "%\'buff\'%"
绑定是buff但不是发送LIKE“%buff%”,而是发送LIKE“%\'buff \'%”
我需要一种正确绑定的方法吗?
有人可以帮助我吗?
这是使用查询的mi模型
ComComercios.prototype.comerciosCriterio = function(criterio) {
var d = q.defer();
this.crud.query(Queries.select_com_comercios_where_criterio, [criterio])
.then((comercios) => {
if(comercios[0] != null ){
console.log(comercios);
d.resolve(comercios[0]);
}
else {
console.log(comercios);
d.reject(Messages.comercios.comercios_not_found);
}
})
.fail((err) => {
console.log(err);
d.reject(Messages.db.db_error);
});
return d.promise;
};
即时使用节点9.4.0并表达4.0.39
答案 0 :(得分:0)
绑定变量不能用于部分字符串替换,它们仅用作整个字符串。
因此对整个LIKE表达式使用bind变量。
而不是nombre LIKE "%?%"
做nombre LIKE ?
然后您的criterio
需要包含通配符'%'
即。 '%' + criterio + '%'
或['%',criterio,'%'].join('')