我有以下字符串,我需要将其转换为整数或bigint。
$test="99999977706";
我试过了:
echo (int)$test;
echo (integer)$test;
echo intval($test);
但是他们都归我2147483647。
如何将上述字符串转换为数字或bigint?
非常感谢所有建议。
答案 0 :(得分:2)
MySQL不会知道其中的区别。只需将字符串提供给您的查询,就好像它是一个数字,而不是先在PHP中输入它。
例如:
$SQL = "SELECT * FROM table WHERE id = $test";
答案 1 :(得分:1)
工作解决方案:
<?php
$str = "99999977706";
$bigInt = gmp_init($str);
$bigIntVal = gmp_intval($bigInt);
echo $bigIntVal;
?>
它将返回:99999977706
答案 2 :(得分:0)
在你的代码片段中,$ test已经是一个数字,更具体地说是一个浮点数。当您将$ test的内容用作数字或字符串时,PHP会将$ test的内容转换为正确的类型,因为该语言的类型是松散的。
答案 3 :(得分:0)
答案 4 :(得分:0)
对于任意长度的整数,使用GMP
。
答案 5 :(得分:0)
您可以将字符串视为字符串而不进行转换。
只需使用正则表达式只留下数字:
$test = "99999977706";
$test = preg_replace('/[^0-9]/', '', $test);