Question

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.

Was it helpful?

Solution

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";

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top