我想把很多IP转成二进制再存到数据库里面,但是不知道怎么在mysql 里面建立二进制存储字段,只能存0和1那种

解决方案 »

  1.   

    MYSQL中没有这种字段。你可以选择存储字符串 123.234.1.1 或者存储这个 32bit 的数字
      

  2.   


    谢谢了,本来我也想直接就存进去了的,但是那样要多占用空间,用32位的数字,我是用PHP,生成出来有时有负数就没用32位的了,我再想想看能不能用32位的,如果不能只能用字符串了
      

  3.   

    不需要在PHP中转换,利用MYSQL函数转换就行了。mysql> SELECT INET_ATON('209.207.224.40');
            -> 3520061480mysql> SELECT INET_NTOA(3520061480);
            -> '209.207.224.40'
      

  4.   

    原来mysql还有这么一招啊,但是转换速度不知道有没有PHP的快,又学到东西了,不用再去走弯路了————哈哈谢谢楼上的大鸟哥哥了