Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy ip2long() w PHP równa się funkcji INET_ATON() w MySQL?

Są prawie takie same. ip2long czasami zwraca wartość ujemną, ponieważ PHP używa liczb ze znakiem do wyceny, podczas gdy MySQL używa liczb bez znaku.

Oba są oceniane jako x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , ale w PHP, ze względu na długi czas podpisywania, pokaże wartości ujemne dla niektórych adresów IP.

For signed long, the range is 
(2^31) - 1 = −2,147,483,648 to +2,147,483,647

Tak więc adresy podczas tłumaczenia na ponad +2147483647 zostaną zawinięte i dadzą wartości ujemne.

ip2long("254.254.254.254"); // -16843010

Ten link opisuje to szczegółowo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Podczas gdy pętla wyświetla tylko ostatni wiersz

  2. alter table add ... przed `code`?

  3. Wyrażenie przypadku a oświadczenie o sprawie

  4. Jak grupować według miesięcy w MySQL

  5. ModuleNotFoundError:Brak modułu o nazwie „mysql”