使用 Node.JS 更新 SQL (better-sqlite3) 中的值
Updating a value in SQL (better-sqlite3) with Node.JS
我目前有一个人的数据库,每个人都有一个状态值。我正在尝试更改他们的状态值。
const id = parseInt(req.params.id , 10);
const { valid, messageObj } = validateId(id);
if (!valid) {
res.status(400).send(messageObj);
}
let { status, priority } = req.body;
let people = db.prepare('select * from people').all();
const person = people.find(person => person.id === id);
if(status !== 'none' & status == 'ready' || status == 'done'){
let updates = db.query(
'UPDATE people SET ? WHERE ?',
[{ status: status }, { id: id }]
);
}
我一直收到 db.query is not a function
错误,但我尝试的每个功能都会出现该错误。
对 SQL 很陌生,但只是想弄清楚这个问题或任何对我有帮助的文档,因为 better-sqlite3 在官方文档中没有任何 update
函数。
我在 better-sqlite3 API for the Database
class. I think that you would need to prepare()
a Statement
object, then run()
中找不到名为 query()
的函数。
此外,列名不能作为绑定参数传递。您的查询应如下所示:
UPDATE people SET status = ? WHERE name = ?
您需要对此进行更改:
let updates =
db.query('UPDATE people SET ? WHERE ?', [{ status: status }, { id: id }]);
收件人:
const stmt = db.prepare('UPDATE people SET status = ? WHERE id = ?');
const updates = stmt.run(status, id);
我目前有一个人的数据库,每个人都有一个状态值。我正在尝试更改他们的状态值。
const id = parseInt(req.params.id , 10);
const { valid, messageObj } = validateId(id);
if (!valid) {
res.status(400).send(messageObj);
}
let { status, priority } = req.body;
let people = db.prepare('select * from people').all();
const person = people.find(person => person.id === id);
if(status !== 'none' & status == 'ready' || status == 'done'){
let updates = db.query(
'UPDATE people SET ? WHERE ?',
[{ status: status }, { id: id }]
);
}
我一直收到 db.query is not a function
错误,但我尝试的每个功能都会出现该错误。
对 SQL 很陌生,但只是想弄清楚这个问题或任何对我有帮助的文档,因为 better-sqlite3 在官方文档中没有任何 update
函数。
我在 better-sqlite3 API for the Database
class. I think that you would need to prepare()
a Statement
object, then run()
中找不到名为 query()
的函数。
此外,列名不能作为绑定参数传递。您的查询应如下所示:
UPDATE people SET status = ? WHERE name = ?
您需要对此进行更改:
let updates =
db.query('UPDATE people SET ? WHERE ?', [{ status: status }, { id: id }]);
收件人:
const stmt = db.prepare('UPDATE people SET status = ? WHERE id = ?');
const updates = stmt.run(status, id);