我需要从SQLite3数据库获取用户ID并用新值更新它。但是我有一些麻烦。
Google2Pandas
db.each(`SELECT * FROM admins WHERE id = 1`, function(err, user) {
console.log(user);
db.run(`REPLACE INTO admins (id, user_id, first_name, last_name) VALUES
(user.id, user.user_id, user.first_name,
"NEW LAST NAME");`)
})
返回:
console.log(user)
为什么显示此错误?如果我删除此代码,一切都会变好...
答案 0 :(得分:1)
SQLite不知道您的user
函数参数。使用命令参数
db.run(`REPLACE INTO admins (id, user_id, first_name, last_name) VALUES (?, ?, ?, ?);`,
user.id, user.user_id, user.first_name, "NEW LAST NAME")
请注意,现在对user
的引用在SQL命令字符串之外。
请参阅:Database#run(sql, [param, ...], [callback])(如果您使用的是API)。
答案 1 :(得分:1)
我认为原因是,当对字符串使用反引号(`)时,需要在${}
内放入表达式。因此,您将拥有id
对象的user
字段的值,而不是字符串“ user.id”:
db.run(`REPLACE INTO admins (id, user_id, first_name, last_name) VALUES
(${user.id}, ${user.user_id}, ${user.first_name},
"NEW LAST NAME");`)
但是我不了解sqlite,所以可能无法解决问题。