在MySQL字段中转换二进制(16)数据

时间:2017-03-05 15:26:59

标签: php mysql

我从同事那里“继承”了一个包含十几个字段的MySQL数据库。由于我在数据库上工作的时间非常少,所以我在这里寻找一些建议。

有一个名为“IP”的binary(16)字段:我想它用于存储用户IP。典型的存储值例如是00000000000000000000ffff3d024463

使用PHP(甚至MySQL,如果可能),如何将此数据转换为纯IP地址?

2 个答案:

答案 0 :(得分:0)

你试过吗

$data = hex2bin($ip);
var_dump($data);
//not sure how your data was put into the column IP

在您的SQL查询中,您也可以尝试

$query = mysql_query("SELECT `HEX(IP)` FROM `database`");
$row = mysql_fetch_array($query);
foreach($row['ip'] as $ip)
{
   $data = hex2bin($ip);
   echo $data."<br />";
}

//未经过测试的代码

SQL Query with binary data (PHP and MySQL)

http://php.net/manual/en/function.hex2bin.php

http://php.net/manual/en/function.bin2hex.php

答案 1 :(得分:0)

解决:我必须使用MySQL函数(INET6_NTOA)转换该数字。