工作?"/>
如何使mysql在(nodejs)的循环中工作?
我目前正在编码一个不和谐的机器人,我需要做一个将每个id添加到mysql数据库(ids数组)的系统。 roleids是一个数组,其中包含具有特定角色的成员的id。所以很明显,我做了一个“ for”循环,检查每个id是否在数据库中,如果不是,它将ID添加到数据库中。
for(i in ids){
let curLvlRoles;
let guildId;
let curID;
if(roleids.indexOf(ids[i]) >= 0) curLvlRoles = 1;
else curLvlRoles = 0;
guildId = message.guild.id;
curID = ids[i];
con.query(`select * from xp where guildId = '${message.guild.id}' and id = '${ids[i]}'`, (err, rows) => {
if(rows.length < 1){
con.query(`insert into xp (guildId, id, xp, lvl, lvlRoles, absXp) values ('${message.guild.id}', '${ids[i]}', 0, 1, ${curLvlRoles}, 0)`);
} else {
con.query(`update xp set lvlRoles = ${curLvlRoles} where guildId = '${message.guild.id}' and id = '${ids[i]}'`);
}
});
}
但是由于某些原因,它用相同的ID填充数据库但是香港专业教育学院尝试了另一个数据库,虽然我看不到任何差异]
for(i in ids){ let curID = ids[i] + message.guild.id; let curLvlRoles; if(roleids.indexOf(ids[i]) >= 0) curLvlRoles = 1; else curLvlRoles = 0; con.query(`select * from xp where id = '${curID}'`, (err, rows) => { if(rows.length < 1){ con.query(`insert into xp (id, xp, lvl, lvlRoles, absXp) values ('${curID}', 0, 1, ${curLvlRoles}, 0)`); } else { let lvl = rows[0].lvl; con.query(`update xp set lvlRoles = ${curLvlRoles} where id = '${curID}'`); } }); }
我很感谢第一个代码的建议,因为我真的是Node js和javascript的新手。
我目前正在编码一个不和谐的机器人,我需要做一个将每个id添加到mysql数据库(ids数组)的系统。 roleids是一个数组,其中包含具有特定角色的成员的id。所以很明显我...
回答如下:好吧,这花费了很多时间。解决方案是使用递归函数:
更多推荐
如何使mysql在(nodejs)的循环中工作?
发布评论