【发布时间】:2018-07-18 05:04:21
【问题描述】:
我试图多次插入到我的数据库中,但 INSERT sql 语句仅在第一次被调用时才起作用,然后继续执行而不插入。我不知道这是否相关,但我正在使用 Cheerio 从网络抓取中获取这些数据。
这段代码运行良好,没有产生错误。但是它执行 SQL 查询只有一次,第一次被调用。为什么?
这是我的代码
remainingList.map(function (val) {
const options = {
uri: val,
transform: function (body) {
return cheerio.load(body);
}
};
rp(options).then(($) => {
title = $(".Lien5").text();
price = $(".Texte8").text();
contenu = $(".contenu").text();
}).then(($) => {
connection.query(`INSERT INTO WatchesList (url, title, price) VALUES ("${val}", "${title}", "${price}")`);
});
});
【问题讨论】:
-
输出有错误吗?
-
绝对没有。我什至
console.log(title)只是为了看看,它每次都能正确显示标题。 -
好吧,我知道这不会回答您的问题,但我认为如果您可以在 map 函数中构造值列表并使用串联值执行 INSERT INTO 会更好。你可以插入(...)值(),(),()等等,我认为mysql也支持这一点。所以一个插入语句毕竟更好。
-
你怎么知道它只执行一次SQL查询?
标签: javascript mysql node.js node-mysql