2016-03-22 18 views
3

私はip2long()でデータベースにIPアドレスを格納していますが、カラムタイプは符号なしintですが、データベースの一部のipでは0として保存されます。テストされ、ip2long関数負の整数と私はそれを0に保存するデータベースに挿入するとき私はグーグルと誰もが列は符号なしintでなければならないと言う。例えばデータベースにIPアドレスを整数として格納する

ip2long("212.36.25.15");-735831793を返し、データベースにあなたの代わりにMySQLの機能INET_ATONを使用することができます0

+2

'integer'から 'unsigned int'に変更する必要があります。 – aashnisshah

+0

カラムはunsigned intですが、いくつかのipsでは0として保存されます。 –

+0

http://stackoverflow.com/questions/ 11210713/ip-addresses-get-as-as-0-when-converting-with-php-ip2long-functionこれはあなたにとって役に立つかもしれません – JackGroves

答えて

3

として保存されます。

+0

はい、私はmysql関数でテストしています。 –

3

INET_ATONを使用してIPアドレスを挿入します。
例:INET_ATON( '127.0.0.1');
INET_NTOAを使用してIPアドレスを取得する
例:SELECT INET_NTOA( '2130706433');

+0

はい、私はmysql関数でテストしています。 –

関連する問題