问题描述
所以我试图根据用户输入选择行,如下所示:
db.all('SELECT * FROM houses WHERE location LIKE "%$input%"',{
$input:name
},(error,rows)=>{
res.send(rows);
})
});
`
但是,数据库以未定义的值进行响应。我该怎么办?
解决方法
您没有正确使用查询参数。考虑:
db.all(
"SELECT * FROM houses WHERE location LIKE '%' || ? || '%",[name],(error,rows) => { ... }
);
在js代码中连接变量可能会更有效:
db.all(
"SELECT * FROM houses WHERE location LIKE ?",['%' + name + '%'],rows) => { ... }
);