Edit report at http://bugs.php.net/bug.php?id=49669&edit=1

 ID:                 49669
 Comment by:         doebrentei at hotmail dot com
 Reported by:        persiancity at gmail dot com
 Summary:            SOAP pass incorrect number for long type
 Status:             Bogus
 Type:               Bug
 Package:            SOAP related
 Operating System:   Linux
 PHP Version:        5.2.11
 Block user comment: N

 New Comment:

I use Macintosh with MAMP and PHP 5.2.13 and 5.3 and I have the same
problem.

I set the value type to float but I think this is not a final solution.



settype($variable,"float")


Previous Comments:
------------------------------------------------------------------------
[2009-09-25 16:25:38] [email protected]

Thank you for your bug report.



This problem has already been reported to the bug tracker by someone
else.



Open:

Bug #48717 Cannot pass datatype long (> 2147483647) in SOAP requests



Other:

Bug #40099 Cannot pass long (> 2147483647) in SOAP requests

Bug #30045 Cannot pass big integers (> 2147483647) in SOAP requests



------------------------------------------------------------------------
[2009-09-25 15:06:33] persiancity at gmail dot com

I should add that I also tried converting to string:

 

$result = $this->client->register_number((string)$value); 

 

with no chance.

------------------------------------------------------------------------
[2009-09-25 15:04:13] persiancity at gmail dot com

Description:
------------
I use a SoapClient code to send a number to mysql database on a service
server. The field type with bug is xsd:long. when I pass a integer value
larger than 2147483647 to this field I get inccorect value on the
service server database (All numbers = 2147483647).

 

I get correct result when send data from a 64bit server and inccorect
result when send from 32bit server. but I am not sure it is cause of
server type. I have not access to soap service server to know what is
it.

Reproduce code:
---------------
$value= 3147483647;

$result = $this->client->register_number((int)$value); // result in
database is: 2147483647 !!

 

// the mysql database field type is unsigned bigint

Expected result:
----------------
result in database is: 2147483647 !!



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=49669&edit=1

Reply via email to