gpt4 book ai didi

javascript - SQLite 在 Javascript Node.JS 中将变量值插入为 Null

转载 作者:行者123 更新时间:2023-12-01 00:18:32 24 4
gpt4 key购买 nike

我一直在寻找和尝试,但无法弄清楚。我想将从 API 调用收到的 8 个变量 INSERT 到 SQLite 表中。一切都正确执行,但是当我查询表时,它显示所有值的 null

我收到以下 req 对象:

REQ object:  { id: '22',
type: 'Buy',
userId: '2000',
userName: 'Daniela',
symbol: 'SPY',
shares: '15000',
price: '99.99',
timestamp: '2014-10-10 14:39:25' }

然后我分配新变量:

var id = req.query.id;
var tradeType = req.query.tradeType;
var userId = req.query.userId;
var userName = req.query.userName;
var symbol = req.query.symbol;
var shares = req.query.shares;
var price = req.query.price;
var timestamp = req.query.timestamp;

然后我将其放在 sql 字符串中:

var sql =
"INSERT INTO trades (id, tradeType, userId, userName, symbol, shares, price, timestamp) VALUES (?,?,?,?,?,?,?,?)",
id,
tradeType,
userId,
userName,
symbol,
shares,
price,
timestamp;

最后,我将其写入表中:

var params = [];
db.all(sql, params, (err, rows) => {
if (err) {
console.log("Error when adding trade: ", err.message);
}
console.log("inserted ", rows);
});

当我用硬编码字符串或数字替换变量时,一切正常,如下所示:

var sql =
"INSERT INTO trades (id, tradeType, userId, userName, symbol, shares, price, timestamp) VALUES (2,'Sell',100,'TestName','AAPL',100,99.99,'2014-10-12 13:20:30')"

当数据来自 API 调用时,我需要动态的 SQL 字符串。我读到这可能与 JavaScript 通过引用而不是通过值分配对象引用这一事实有关。我尝试将所有内容都字符串(变量),但也不起作用。

最佳答案

您似乎没有在任何地方填充 params[] 数组,因此您应该尝试这样做:

var sql = "INSERT INTO trades (id, tradeType, userId, userName, symbol, shares, price, timestamp) VALUES (?,?,?,?,?,?,?,?)";
var params = [id, tradeType, userId, userName, symbol, shares, price, timestamp];
db.all(sql, params, (err, rows) => {
if (err) {
console.log("Error when adding trade: ", err.message);
}
console.log("inserted ", rows);
});

关于javascript - SQLite 在 Javascript Node.JS 中将变量值插入为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59596878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com