PHP SOAP, ADODB, MySQL and BigInt problem

[email protected] (Peter Beckman)
Newsgroups php.soap
Message-ID <[email protected]>
I have bigints in my MySQL DB (full international-style phone numbers, such
as 12125004000).  I want to return these via a SOAP API I'm working on.

My public soap API PHP file is just this:

     require 'api_pub_soap.class.inc';

     $server = new SoapServer("pubapi.wsdl");
     $server->setClass('pubapisoap');
     $server->handle();

Class pubapisoap extends my pubapi class, so that I can do REST or other
methods for accessing and responding to API requests.

It seems that even if I specify xsd:string in the WSDL for the response,
the item is somehow strongly typed by SOMETHING.  Maybe SOAP, maybe ADODB,
but I'm not sure how to untype it.  I love how simple my API implementation
is, and I don't want to get it all complex by skipping the setClass piece
and have to redo everything.

I've even tried to typecast those two fields back to a string before
returning the values in the base class, but with no luck.  What am I doing
wrong?

Here's the request and response:

     <SOAP-ENV:Body>
         <m:extensionGet xmlns:m="pubapi.wsdl">
             <apikey xsi:type="xsd:string">md5hash</apikey>
             <extensionid xsi:type="xsd:int">1</extensionid>
             <did xsi:type="xsd:string"></did>
             <extension xsi:type="xsd:int"></extension>
         </m:extensionGet>
     </SOAP-ENV:Body>

     <SOAP-ENV:Body>
         <ns1:extensionGetResponse xmlns:ns2="pubapi.wsdl" xmlns:ns1="">
             <extensionList SOAP-ENC:arrayType="ns2:Extension[1]" xsi:type="ns2:ExtensionArray">
                 <item xsi:type="ns2:Extension">
                     <extensionid xsi:type="xsd:int">1</extensionid>
                     <did xsi:type="xsd:int">2147483647</did>
                     <forward xsi:type="xsd:int">2147483647</forward>
                     <added xsi:type="xsd:int">1136219788</added>
                     <startdate xsi:type="xsd:int">1136219788</startdate>
                     <enddate xsi:type="xsd:int">1151501937</enddate>
                     <alias xsi:type="xsd:string"></alias>
                     <extension xsi:type="xsd:int">0</extension>
                     <extensionLength xsi:type="xsd:int">0</extensionLength>
                 </item>
             </extensionList>
         </ns1:extensionGetResponse>
     </SOAP-ENV:Body>

The WSDL relevant:

     <xsd:complexType name="Extension">
         <xsd:all>
             <xsd:element name="extensionid" type="xsd:int"/>
             <xsd:element name="did" type="xsd:string"/>
             <xsd:element name="forward" type="xsd:string" />
             <xsd:element name="added" type="xsd:int" />
             <xsd:element name="startdate" type="xsd:int" />
             <xsd:element name="enddate" type="xsd:int" />
             <xsd:element name="alias" type="xsd:string" />
             <xsd:element name="extension" type="xsd:int" />
             <xsd:element name="extensionLength" type="xsd:int" />
         </xsd:all>
     </xsd:complexType>
     <xsd:complexType name="ExtensionArray">
         <xsd:complexContent>
             <xsd:restriction base="SOAP-ENC:Array">
                 <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:Extension[]"/>
             </xsd:restriction>
         </xsd:complexContent>
     </xsd:complexType>

     <message name="extensionGetRequest">
         <part name="apikey" type="xsd:string" />
         <part name="extensionid" type="xsd:int" />
         <part name="did" type="xsd:string" />
         <part name="extension" type="xsd:int" />
     </message>
     <message name="extensionGetResponse">
         <part name="extensionList" type="tns:ExtensionArray" />
     </message>

---------------------------------------------------------------------------
Peter Beckman                                                  Internet Guy
[email protected]                                 http://www.angryox.com/
---------------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.