Vebers Posted April 30, 2006 Report Share Posted April 30, 2006 Ir piem. mobilā tel nr. : 37125553333. un vaig viņam nogriezt to 2 nost, kurš seko uzreiz pēc 371. Kad 2 ir nogriezts, tad šim nr. ir atkal jābūt integer. $nr=37125553333; $nr=substr($nr, 0, 3).substr($nr, 4); settype($nr, 'integer'); var_dump($nr); // Tas atgriež parāda: int(2147483647) Tas kāds gļuks vai es kaut ko nesaprotu? Link to comment Share on other sites More sharing options...
Kavacky Posted April 30, 2006 Report Share Posted April 30, 2006 Da kāda starpība, PHP tāpat pats pielāgo tipu. Link to comment Share on other sites More sharing options...
Vebers Posted April 30, 2006 Author Report Share Posted April 30, 2006 Ieliekot šos datus MySQL tabulā parādas nevis 3715553333 ,bet gan tas 2147483647, kas galīgi neder, jo nevar izvilkt datus no DB ( .. WHERE nr=$nr ..) Link to comment Share on other sites More sharing options...
bubu Posted April 30, 2006 Report Share Posted April 30, 2006 php integeri ir 32-bitīgi. Tas nozīmē, ka tie var pieņemt vērtības no -2^31 .. 2^31-1 = -2147483648 .. +2147483647. Pats redzi, ka 3715553333 ir > +2147483647 tāpēc php to uzliek uz maksimālo integera vērtību. Risinājums - neglabā kā integeru, bet glabā kā stringu. Ja nu ļoti, ļoti vajag kā skaitlisku vērtību glabāt, tad glabā NUMBER(..) tipa kolonnā. Taču php pusē gan neoperē ar to kā ar skaitli. Link to comment Share on other sites More sharing options...
Vebers Posted April 30, 2006 Author Report Share Posted April 30, 2006 Tas daudz ko izskaidro. Paldies! Link to comment Share on other sites More sharing options...
Recommended Posts