好了,所以我一直在与蒸汽的Web API玩弄的时候,我都存储在一个名为变量的值之一$steam64
。 当我使用此代码剪断将其插入到一个MySQL数据库将其插入比什么是存储在变量completley不同的整数。
$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";
var_dump($steam64);
返回真正的整型,所以没有呼应吧。 不太清楚是什么在这里发生,任何帮助表示赞赏。
好了,所以我一直在与蒸汽的Web API玩弄的时候,我都存储在一个名为变量的值之一$steam64
。 当我使用此代码剪断将其插入到一个MySQL数据库将其插入比什么是存储在变量completley不同的整数。
$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";
var_dump($steam64);
返回真正的整型,所以没有呼应吧。 不太清楚是什么在这里发生,任何帮助表示赞赏。
这可能是因为你包裹在双引号中查询,但该变量是在单引号,因此它被视为文字,如果列数据类型为int,你会得到一个0来代替。
试试这个:
$sql_query = "INSERT INTO users_info (steam64) VALUES ('" . $steam64 . "')";
另外,我得到火烧之前,一定要上阅读了SQL注入的情况下,你是不是消毒变量直接投递到SQL语句。
-更新-
根据您的评论“价值被倾销”; 您要插入的数目是32位系统过大。 最大为32位是4294967295,和最大为64位是18,446,744,073,709,551,615。 我建议你的柱转换为varchar(100)
的散列,而不是int,或者切换到一个64位的系统。 了解最高大文章INTS 这里 ,并在这里 。
2147483647是MySQL最大的int值。 刚刚从int类型更改为BIGINT。
当我和SQL玩和MySQL有同样的问题MySQL的int数据类型。 从int修改数据类型为bigint固定的问题。
MySQL的整数类型http://dev.mysql.com/doc/refman/5.7/en/integer-types.html
ALTER TABLE tablename MODIFY columnname BIGINT;
只需从INT更改数据类型为bigint
整数类型INT是4字节的存储,你从-2^(4*8-1)=-2147483648
至2^(4*8-1)-1=2147483647
,当你有“ 签名 ”的标志,如果你改变为无符号你将有一个范围从标志0
至2^(4*8)-1
。 MySQL支持BIGINT是8个字节的存储。 如果您尝试保存一个值时,您将节省的范围内的最大值
数据类型INT的最大值是2147483647。如果要插入的数目比2147483647更大,那么它会引起问题。 对于解决方案,数据类型从INT更改为BIGINT BIGINT作为拥有9223372036854775807最大值,它可能会解决你的问题。 看看这个网站: https://dev.mysql.com/doc/refman/5.7/en/integer-types.html
转到操作 - >表选项 - >更改增量值,无论你想要增加最小或..
自动增量的很大的问题就是它是由错误的最后一项开始,如果它非常大的值,然后开始插入值..问题,我们的预定义的数据类型
从整数数据类型更改为BIGINT同意。 目前建设有node.js的/ sequelize一个web应用程序下面的重构解决从反应,终极版的形式操纵“2147483647”的电话号码后:
clientPhone: {
type: DataTypes.BIGINT,
allowNull: true
},
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;
最简单的方法是在MySQL中“诠释”为“VARCHAR”的转变。