以下をMySQLに挿入しようとすると
INSERT INTO `rooms` (`id`, `ip`) VALUES ('131213', '-259857341');
次のエラーで失敗します:
Warning: #1264 Out of range value for column 'ip' at row 1
私は周りを見回していますが、それを修正または解決する方法を見つけていません...
私のフィールドはunsignedintであり、そのエントリに対しては問題なく機能するはずです。
問題は何ですか?どうすれば解決できますか?
inet_ntoa / atonを使用してipsを格納したかったので、unsignedintを使用しています。
編集:
MySQLWebサイトで推奨されているようにunsignedINTを使用しています。
INET_ATON()によって生成された値を格納するには、符号付きINTではなくINTUNSIGNED列を使用します。符号付き列を使用すると、最初のオクテットが127より大きいIPアドレスに対応する値を正しく保存できません。セクション10.6「範囲外およびオーバーフローの処理」を参照してください。
http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html