我正在從我的資料庫中請求一個 bigint。但是,Node.js 改變了我請求的值,所以我的程式無法運行。
這是我的代碼:
let query = `SELECT transcriptchannel FROM guilds WHERE guild_id = 933323734322913301;`
sql.query(query, function(err, result){
if(err) throw err;
console.log(result);
}
控制臺日志:
[ RowDataPacket { transcriptchannel: 946134226196123600 } ]
但是,如果我在 PHPmyAdmin 中運行相同的陳述句,它將如下所示:
SELECT transcriptchannel FROM guilds WHERE guild_id = 933323734322913301;
它回傳:
946134226196123658
為什么 Node.JS 將值向上舍入,我如何防止它?
uj5u.com熱心網友回復:
當數字大于 時會發生這種情況Number.MAX_SAFE_INTEGER。
請嘗試以下操作,看看您是否獲得了預期值:
const sql = mysql.createConnection({supportBigNumbers: true, bigNumberStrings: true});
參考 - https://github.com/mysqljs/mysql
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497114.html
