Hướng dẫn 2147483647 mysql

Alright, so I've been toying around with the Steam Web API, I have one of the values stored in a variable called $steam64. When I use this code snipper to INSERT it into a mysql database it insert a completley different integer than what is stored in the variable.

$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";

var_dump($steam64); returns the real int, so does echoing it. Not too sure what is going on here, any help is appreciated.

asked Apr 21, 2012 at 2:42

5

2147483647 is the largest int value for mysql. Just change the type from int to bigint.

answered Jul 22, 2013 at 8:49

Hướng dẫn 2147483647 mysql

GeorgeGeorge

5,9166 gold badges44 silver badges68 bronze badges

1

Based on your comment of "value being dumped"; the number you are trying to insert is too large for 32-bit systems. The max for 32-bit is 4,294,967,295, and the max for 64-bit is 18,446,744,073,709,551,615. I'd recommend converting your column into a varchar(100) hash rather than an int, or switch to a 64 bit system. Great article about max ints here, and here.


Also, before I get flamed, be sure to read up on SQL injection in case you are not sanitizing variables being posted directly into sql statements.

miken32

40.5k15 gold badges100 silver badges140 bronze badges

answered Apr 21, 2012 at 2:52

Hướng dẫn 2147483647 mysql

Mike PurcellMike Purcell

19.6k10 gold badges51 silver badges86 bronze badges

6

Simply Change the data type from INT to BIGINT

answered Mar 29, 2018 at 4:54

Hướng dẫn 2147483647 mysql

The largest value for data type INT is 2147483647. If the number you're inserting is bigger than 2147483647, then it will cause the problem. For solution, change the data type from INT to BIGINT as BIGINT has a maximum value of 9223372036854775807, it might solve your problem. Have a look at this site: https://dev.mysql.com/doc/refman/5.7/en/integer-types.html

answered Jun 30, 2017 at 2:13

The integer type INT is 4Bytes storage, you get from -2^(4*8-1)=-2147483648 to 2^(4*8-1)-1=2147483647, when you have "signed" flags, if you change the flags to unsigned you will have a range from 0 to 2^(4*8)-1 . MySQL support BIGINT being 8Bytes storage. If you try save a value greater, you will save the max value of the range

answered Aug 25, 2015 at 18:57

Hướng dẫn 2147483647 mysql

Go to operations-> table options -> change increment values to minimum or whatever you want to increment..

the big problem of autoincrement is it's start from last entry by mistake if its very large value then start problem in insert value.. with our predefined datatype

Hướng dẫn 2147483647 mysql

answered Aug 4, 2015 at 13:10

Hướng dẫn 2147483647 mysql

lalit mohanlalit mohan

1931 silver badge12 bronze badges

Agree with the datatype change to BIGINT from INTEGER. Currently building a web app with node.js/sequelize the below refactor solved the phone number post from react-redux form manipulated to '2147483647':

clientPhone: {
    type: DataTypes.BIGINT,
    allowNull: true
},

HDJEMAI

9,16945 gold badges68 silver badges89 bronze badges

answered Jun 6, 2017 at 23:54

Hướng dẫn 2147483647 mysql

I had the same problem but not with Varchar. The problem I had was that I was performing an INSERT INTO with a bad order of columns. For anyone who see this maybe is the order of cols that u are using in a subquery

answered Jul 12 at 12:23

CREATE TABLE `dvouchers` (
  `2147483647` int(3) NOT NULL auto_increment,
  `code` varchar(12) NOT NULL default '1',
  `type` char(1) NOT NULL default '$',
  `count` int(3) unsigned NOT NULL default '0',
  `amount` int(3) unsigned default '0',
  `notes` text,
  `expiryDate` date default NULL,
  `fkUserAdminId` int(11) NOT NULL default '0',
  PRIMARY KEY  (`2147483647`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Hướng dẫn 2147483647 mysql

kleopatra

50.7k28 gold badges97 silver badges203 bronze badges

answered Aug 10, 2013 at 6:55

2

Easiest way is change in MySQL "int" to "varchar".

answered Feb 19, 2016 at 16:58

1