Pergunta

I have the following string which i need to convert to integer or bigint.

$test="99999977706";

I tried:

echo (int)$test;
echo (integer)$test;
echo intval($test);

But they are all returning me 2147483647.

How do i convert the above string to a number or bigint?

Many many thanks for all suggestions.

Foi útil?

Solução

MySQL isn't going to know the difference. Just feed the string into your query as though it is a number without first type casting it in PHP.

For example:

$SQL = "SELECT * FROM table WHERE id = $test";

Outras dicas

working solution :

<?php
   $str = "99999977706";
   $bigInt = gmp_init($str);
   $bigIntVal = gmp_intval($bigInt);
   echo $bigIntVal;
   ?>

It will return : 99999977706

In your snippet $test is already a number, more specifically a float. PHP will convert the contents of $test to the correct type when you use it as a number or a string, because the language is loosely typed.

For arbitrary length integers use GMP.

You can treat the string as string without converting it.

Just use a regex to leave only numbers:

$test = "99999977706";
$test = preg_replace('/[^0-9]/', '', $test);

It can help you,

$token=  sprintf("%.0f",$appdata['access_token'] );

you can refer with this link

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top