Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mysql returning incorrect bigint result by one, very strange error

I really don't know what is going on here. I have a database table that looks like this:

enter image description here

With this data:

enter image description here

When I run this query SELECT * FROM game WHERE id = 4 in phpmyadmin I get back this result as expected:

enter image description here

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

enter image description here

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

like image 702
user1180888 Avatar asked Feb 27 '15 06:02

user1180888


1 Answers

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
                 });
like image 175
c.P.u1 Avatar answered Oct 15 '22 17:10

c.P.u1