[英]How to use Int64(long) in php but not string?
如何在php,如dotnet,java,c ++中使用Int64?
例如:
数据类型是mysql中的bigint(20),我想从php中保存值。我知道一个解决方案是在mysql程序中使用字符串。
表格案例:
CREATE TABLE `test_int64` (
`id` bigint(20) unsigned NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
mysql程序案例:
CREATE PROCEDURE `sp_test_int64`(IN p_id VARCHAR(20))
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
INSERT INTO test_int64(id) VALUES(p_id+0);
END;
php代码案例:
$id = '1660820628901389'; Then execute sql 'call sp_test_int64(\''.$id.'\')'
上面的方法没问题,但我不想这样做。 还有其他解决方案吗?
例2:
我想用PHP读取MYSQL数据输出JSON代码,如下所示:
{
"id":1660820628901389
}
但不是 :
{
"id":"1660820628901389"
}
我不知道该怎么办?
PHP中的INT类型链接到CPU 和安装的PHP版本(您可以在64位CPU上安装32位PHP)。
要找出PHP可以支持的最大整数,简单地说
echo PHP_INT_MAX;
这将给你最大的收益。 它会给你20亿,或者数量太大而无法读取(9.2亿左右)。
请注意它是签名的(-2亿 - > +20亿,或-9 gazillion - > +9 gazilion)。 你可以在mySQL中指定unsigned,你在PHP中没有这个选项。
如果您只有20亿个限制,那么您安装了32位版本的PHP。 您可以在64位CPU上安装PHP 64位,或者您需要作为字符串处理,或者您可以使用BC Math函数将您从mySQL返回的字符串转换为数字 - 但我不确定JSON_encode会处理它*。 如果你有大数字,你应该很好,可以作为整数处理。
编辑:这是手册中的相关页面: http : //php.net/manual/en/language.types.integer.php它还添加了GMP作为BC Math的替代方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.