[英]Passing array of strings to a GraphQL query, convers to integers when embedded
[英]NodeJS MySQL Returning Empty Array When Passing Integers To Query
第二编辑
问题是由MAX_INTEGER_VALUE引起的,该值比我传递的整数值低。 我将MySQL表列更改为TEXT
而不是BIGINT
,所有内容BIGINT
正确返回。
感谢您的所有帮助!
编辑
因此,我刚刚意识到使用此行代码传递了userID
变量和guildID
变量。
mysqlModule.userCrewSearch(575783451018526744, 282997056438665217);
但是,提供给SQL语句的值会将数字的最后两位数字变为'00'。 因此,传递给SQL语句的值不是575783451018526744
,而是575783451018526700
。
那么,当我在代码中没有做任何事情来更改这些值时,为什么还要更改此值?
原始帖子
我会简短而甜美的。 我正在尝试使用nodejs MySQL包运行查询。 我不确定哪里出错了,但是每当我调用执行查询的函数时,总是返回一个空数组,除非我将值硬编码到SQL查询中。
这是代码:
// Search for the User's Crew
function userCrewSearch(guildID, userID) {
pool.getConnection(function(err, connection) {
if(err) {
return console.log(err);
}
var sql = "SELECT * FROM `crew-members` WHERE `userID`=? AND `guildID`=?;";
console.log(sql);
connection.query(sql, [guildID, userID], function(err, results) {
connection.release(); // always put connection back in pool after last query
if(err) {
return console.log(err);
}
return console.log(results);
});
});
}
我这样调用此函数: userCrewSearch(575783451018526744, 282997056438665217);
我传递的两个值都是整数。 但是,这就是我在控制台中得到的。
但是,这是我的代码,其中值硬编码到SQL中,然后代码以RowDataPacket的形式返回结果。
// Search for the User's Crew
function userCrewSearch(guildID, userID) {
pool.getConnection(function(err, connection) {
if(err) {
return console.log(err);
}
var sql = "SELECT * FROM `crew-members` WHERE `userID`=282997056438665217 AND `guildID`=575783451018526744;";
console.log(sql);
connection.query(sql, [guildID, userID], function(err, results) {
connection.release(); // always put connection back in pool after last query
if(err) {
return console.log(err);
}
return console.log(results);
});
});
}
继承人的结果。
奖励问题:如何处理RowDataPacket? 我可以将其直接转换为对象,以便可以调用results.crewID
并仅返回该值吗?
我几天前面临的同样问题。 我已经通过将参数转换为字符串解决了这一问题。
function userCrewSearch(String(guildID), String(userID)) {
// your code here
}
尝试在数字参数前添加+,它会转换为数字,对我有用-
connection.query(sql, [+guildID, +userID], function(err, results) {
对于您的奖励问题答案,您可以使用,直接访问crewID或其他一些键,
results[0].crewID
或做类似的事情-
const [ result ] = results;
console.log(result.crewID)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.