使用Node js时在Sqlite中发布像运算符和参数

问题描述

所以我试图根据用户输入选择行,如下所示:

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) => { ... }
);