I really don't know what is going on here. I have a database table that looks like this:
With this data:
When I run this query SELECT * FROM game WHERE id = 4 in phpmyadmin I get back this result as expected:
But when I make this query on it through a rest api (where gameId = 4)
var query = connection.query("SELECT * FROM game WHERE id = ? ",[game.gameId],function(err,rows){
I get this result
Where adminId for some reason has been subtracted by one. I really haven't a clue what is going on. I have tried dropping the table and setting it back up, has anyone experienced this before? Or know what is wrong? It's pretty frustrating! Thanks
解决方案
The maximum integer JavaScript can safely represent is Number.MAX_SAFE_INTEGER, which is 2^53 - 1. Your value is greater than that, which is causing some bits to be lost.
node-mysql has supportBigNumbers and bigNumberStrings options that parse BIGINTs as strings.
var connection = mysql.createConnection({
supportBigNumbers: true,
bigNumberStrings: true
});